我有以下代码:
Array
(
[0] => Array
(
[id] => '157a',
[name] => '***',
)
[1] => Array
(
[id] => '158a',
[name] => '***',
)
需要复制数组值的数字键(0,1)(' 157a',' 158a'):
Array
(
[157a] => Array
(
[id] => '157a',
[name] => '***',
)
[158a] => etc
实现这一目标的最有效方法是什么?
答案 0 :(得分:1)
将null
作为第二个参数传递给array_column()
以获取整个子数组,并传递id
作为第三个参数,以按该列的值索引数组:
$array = array_column($array, null, 'id');
答案 1 :(得分:0)
不知道它是否有效,但我会做这样的事情:
$newArray = [];
foreach($array as $v)
{
$newArray[$v['id']] = $v;
}
答案 2 :(得分:0)
您可以使用array_column:
array_column($input, $item, 'id');
或者您可以使用array_reduce以函数式编程方式执行此操作。
$changedArray = array_reduce($input, function ($result, $item) {
$result[$item['id']] = $item;
return $result;
}, array());
var_dump($changedArray);