猿问

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        

        ]

    ],

];

在第一个迭代器中是迭代两次的“类别”键的值。第二次迭代针对“attribute”,同样第三次迭代针对“option”,迭代 8 次。


补充:如果我想做相反的事情怎么办?我有第二个数组,想转换第一个数组。


叮当猫咪
浏览 200回答 1
1回答

FFIVE

$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。
随时随地看视频慕课网APP
我要回答