繁体   English   中英

如何将PHP中的二维数组转换为三维?

[英]How to convert Two dimentional array into Three dimentional in PHP?

我有以下二维数组

$data = [
    ['category'=>1,'attribute'=>1,'option'=>1],
    ['category'=>1,'attribute'=>1,'option'=>2],
    ['category'=>1,'attribute'=>2,'option'=>3],
    ['category'=>1,'attribute'=>2,'option'=>4],
    ['category'=>2,'attribute'=>3,'option'=>5],
    ['category'=>2,'attribute'=>3,'option'=>6],
    ['category'=>2,'attribute'=>4,'option'=>7],
    ['category'=>2,'attribute'=>4,'option'=>8]
];

我想根据父子值将此数组转换为三维数组,如下面的数组。

$data = [
    '1'=>[
        '1' => [
            '1' => 1,
            '2' => 2        
        ],
        '2' => [
            '3' => 3,
            '4' => 4        
        ]
    ],
    '2'=>[
        '3' => [
            '5' => 5,
            '6' => 6        
        ],
        '4' => [
            '7' => 7,
            '8' => 8        
        ]
    ],
];

在这第一个迭代器中是迭代两次的“类别”键的值。 第二次迭代用于“属性”,同样第三次用于“选项”,迭代 8 次。

加法:如果我想做反向怎么办。 我有第二个数组,想在第一个数组中转换。

谢谢。

$arr = [
  ['category'=>1,'attribute'=>1,'option'=>1],
  ['category'=>1,'attribute'=>1,'option'=>2],
  ['category'=>1,'attribute'=>2,'option'=>3],
  ['category'=>1,'attribute'=>2,'option'=>4],
  ['category'=>2,'attribute'=>3,'option'=>5],
  ['category'=>2,'attribute'=>3,'option'=>6],
  ['category'=>2,'attribute'=>4,'option'=>7],
  ['category'=>2,'attribute'=>4,'option'=>8],
];

$newArr = [];

foreach($arr as $arrRow) {
    $newArr[$arrRow['category']][$arrRow['attribute']][$arrRow['option']] = $arrRow['option'];
}

带有数组键数字的字符串将在 PHP 中转换为 int。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM