我有下面的二維數組$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 次。補充:如果我想做相反的事情怎么辦?我有第二個數組,想轉換第一個數組。
1 回答

FFIVE
TA貢獻1797條經驗 獲得超6個贊
$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。
- 1 回答
- 0 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消