快速取出数组中指定键值

有时候业务中需要取出数组中的指定键,记录一个不错的写法

$column = "id,name,age";
$arr = [
    'id' => 1,
    'name' => 'test',
    'age' => 18,
    .....
];
$newArr = array_intersect_key($arr,array_flip(explode(',',$column)));
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 7
Junwind

你写的方法名称好几个都错了,其次你这种用了三个函数去达到这个简单的目的,并不怎么样

2年前 评论
codelin (楼主) 2年前

不错,建议发在代码速记分类

2年前 评论
codelin (楼主) 2年前
Junwind
//原理,直接根据需要的key,到源数组中直取即可,仅使用了一个explode系统函数,并且foreach循环的是column,没有多余的性能消耗
function getColumnArr($column, $arr) {
    $newArr = [];
    $column = explode(',',$column);
    foreach($column as $v) {
        $newArr[$v] = $arr[$v];
    }
    return $newArr;
}
2年前 评论
Junwind

而且你数组的格式,里面应该是 , , 而不是 ; , 我不知道您是否连自己的代码都没有执行过

2年前 评论
Junwind

还有你这个不错的写法,是否意味着每次做这种操作时,都需要写这么长呢? 感觉是为了用内置函数而用内置函数

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!