Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 复制数组值的数字键_Php_Arrays - Fatal编程技术网

Php 复制数组值的数字键

Php 复制数组值的数字键,php,arrays,Php,Arrays,我有以下代码: Array ( [0] => Array ( [id] => '157a', [name] => '***', ) [1] => Array ( [id] => '158a', [name] => '***', ) 需要为数组值('157a','158a')复制数字键

我有以下代码:

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

    [1] => Array
        (
            [id] => '158a',
            [name] => '***',
        )
需要为数组值('157a','158a')复制数字键(0,1):


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

不知道这是否有效,但我会这样做:

$newArray = [];
foreach($array as $v)
{
   $newArray[$v['id']] = $v;
}
您可以使用:

array_column($input, $item, 'id');
或者,您可以使用函数式编程方式来实现这一点

$changedArray = array_reduce($input, function ($result, $item) {
    $result[$item['id']] = $item;
    return $result;
}, array());
var_dump($changedArray);

null
作为第二个参数传递到
array\u column()
以获取整个子数组,并将
id
作为第三个参数传递,以该列的值对数组进行索引:

$array = array_column($array, null, 'id');

您是否希望从第一个数组创建第二个数组?我没有尝试修改现有数组,而是以所需格式创建了一个新数组。。。很好也很简单。所以基本上只需要创建一个新数组,而不是编辑现有数组中的键名?
$array = array_column($array, null, 'id');