复制数组值的数字键

时间:2017-03-08 16:26:19

标签: php arrays

我有以下代码:

Array
(
    [0] => Array
        (
            [id] => '157a',
            [name] => '***',
        )

    [1] => Array
        (
            [id] => '158a',
            [name] => '***',
        )

需要复制数组值的数字键(0,1)(' 157a',' 158a'):

Array
(
    [157a] => Array
           (
               [id] => '157a',
               [name] => '***',
           )

    [158a] => etc

实现这一目标的最有效方法是什么?

3 个答案:

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