我有下面的二维数组$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 关注
- 128 浏览
添加回答
举报
0/150
提交
取消