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')

谢谢

<?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
参考技术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值返回元素的主要内容,如果未能解决你的问题,请参考以下文章

PHP二维数组根据某个元素(key)排序

php如何编写根据key返回json格式?

根据另一列的位置从一组列中返回值

根据数组中的值取消设置特定会话项

根据map的key值获取value值 有多个key怎么获取多个value值

php 获取数组第一个key 第一个键值对 等等