复制数字键以获取数字值



我有以下代码:

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

最新更新