php根据一组key值返回元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php根据一组key值返回元素相关的知识,希望对你有一定的参考价值。
php有没有这样的函数?
$source = array('a' => '111', 'b' => '222', 'c' => '33333', 'd' => '4444');
$needKey = array('a', 'c');
调用函数,获得结果
array('a' => '111', 'c' => '33333')
谢谢
$source = array(\'a\' => \'111\', \'b\' => \'222\', \'c\' => \'33333\', \'d\' => \'4444\');
$needKey = array(\'a\', \'c\');
$needKey = array_flip($needKey); //调转键值使之可比。array(\'a\'=>0, \'c\'=>1)
$array = array_intersect_ukey($source,$needKey,\'key_compare_func\'); //array_intersect_ukey用回调函数比较键名来计算数组的交集
var_dump($array);
function key_compare_func($key1, $key2)
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
//End_php 参考技术A function test($source,$needKey)
foreach($needKey as $v)
$arr[$v]=$source[$v]
return $arr;
参考技术B <?php
$source = array('a' => '111', 'b' => '222', 'c' => '33333', 'd' => '4444');
$needKey = array('a', 'c');
$needKey = array_flip($needKey); //调转键值使之可比。array('a'=>0, 'c'=>1)
$array = array_intersect_ukey($source,$needKey,'key_compare_func'); //array_intersect_ukey用回调函数比较键名来计算数组的交集
var_dump($array);
function key_compare_func($key1, $key2)
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
//End_php 参考技术C 每次我想回答的时候 看到下面回答的 不管对不对 我都没心情回答了追问
有好的建议不妨说一下,遍历总不是好办法,呵呵
PHP二维数组根据某个元素(key)排序
/** * 二维数组根据key排序 * @param $arr * @param $arr_key * @param string $order 排序规则 * @return mixed */ function myArrayMultisort($arr,$arr_key,$order=‘asc‘){ foreach($arr as $val){ $key_arrays[]=$val[$arr_key]; } if ($order == ‘asc‘){ array_multisort($key_arrays,SORT_ASC,SORT_NUMERIC,$arr); }else{ array_multisort($key_arrays,SORT_DESC,SORT_NUMERIC,$arr); } return $arr; }
以上是关于php根据一组key值返回元素的主要内容,如果未能解决你的问题,请参考以下文章