我有以下代码:
Array
(
[0] => Array
(
[id] => '157a',
[name] => '***',
)
[1] => Array
(
[id] => '158a',
[name] => '***',
)
需要为数组值('157a','158a')复制数字键(0,1):
Array
(
[157a] => Array
(
[id] => '157a',
[name] => '***',
)
[158a] => etc
实现此目标的最有效方法是什么?
将 null
作为第二个参数传递给 array_column()
,以获取整个子阵列并将id
作为第三个参数作为第三个参数,以通过该列的值索引数组:
$array = array_column($array, null, 'id');
不知道它是否有效,但我会做这样的事情:
$newArray = [];
foreach($array as $v)
{
$newArray[$v['id']] = $v;
}
您可以使用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);