php - 如何将多维数组键更改为 Childs 键值?

标签 php arrays multidimensional-array

我正在尝试将多维数组中的父键重命名为子键的值。

例如,在下面的代码中,我想将键 [0] 更改为 [111],将键 [1] 更改为 [222],这样我以后就可以很容易地识别键以进行数组合并。

Array (
[0] => Array ( [product_id] => 111 [product_name] => Foo [quantity] => 4 )
[1] => Array ( [product_id] => 222 [product_name] => Bar [quantity] => 2 )
)

我已经尝试过各种方法,但在进入循环后,我不知道如何影响父键,并假设在将它传递给变量后这是不可能的。是否有一个简单的解决方案来更改我丢失的 key ,或者是进入循环并使用所需 key 重建新数组的情况?

最佳答案

使用 array_combinearray_column 函数的

单行解决方案:

$result = array_combine(array_column($arr, 'product_id'), $arr);
print_r($result);

输出:

Array
(
    [111] => Array
        (
            [product_id] => 111
            [product_name] => Foo
            [quantity] => 4
        )

    [222] => Array
        (
            [product_id] => 222
            [product_name] => Bar
            [quantity] => 2
        )
)

关于php - 如何将多维数组键更改为 Childs 键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44779746/

相关文章:

php - Laravel 生成的 XML 文件开头有空格

php - 如何在不降低 PHP 质量的情况下减小图像大小

c - 在 C 中用 '%20' 替换空格

c - 在C中交换动态二维数组的行

php - 使用正则表达式在其之间和之后插入

php - Laravel 路由不适用于生产服务器 404 错误

javascript - 计算 javascript 对象中的出现次数

javascript - 设置jquery多维数组

python - 有没有办法将 numpy.ndarray 的每个条目包装到一个单独的数组中?

c++ - 如何在 C++ 中创建具有动态维度大小的数组?