如何按一维数组值查找二维数组的下标并组装新的数组
给定一个一维数组 $str_arr 和一个包含数据的二维数组 $arr,目标是根据 $str_arr 中的值在 $arr 中找到相应的键值对,并组合成一个新的二维数组。
下文提供了这种转换的一个解决方案,灵感来自 laravel 的 arr::only 方法:
$result = array_map(function ($item) use ($str_arr) { return array_intersect_key($item, array_flip($str_arr)); }, $arr); var_dump($result);
这个解决方案使用 array_intersect_key 函数取两个数组键值的交集。array_flip 函数将 $str_arr 的值转换为键,作为过滤条件。
上面的代码将生成一个新的数组 $result,其中每个元素包含 $str_arr 中指定键对应的值:
立即学习“PHP免费学习笔记(深入)”;
[ [ 'id' => 1, 'username' => 'zhangs', 'email' => '123@163.com' ], [ 'id' => 2, 'username' => 'lisi', 'email' => 'abcfef@163.com' ] ]