如何在PHP中将二维数组转换为三维数组?
我有下面的二维数组如何在PHP中将二维数组转换为三维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有下面的二维数组 $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],
$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
]
],
];
在第一个迭代器中,是迭代两次的“category”键的值。第二次迭代用于“属性”,第三次迭代用于“选项”,迭代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。感谢您的帮助。如果我想倒过来怎么办?我有第二个三维数组,想转换成第一个数组。