PHP阵列组和创建多维关联数组
问题描述:
我有阵列命名的数据如下面PHP阵列组和创建多维关联数组
$data = array();
$data = array (
[0] => Array (
[class] => 1styear
[branch] => IT
[Exam] => SEM1
[student name] => Alex
[Bio] => Good Boy
)
[1] => Array (
[class] => 2ndyear
[branch] => Finance
[Exam] => SEM1
[student name] => Mark
[Bio] => Intelligent
)
[2] => Array (
[class] => 2ndyear
[branch] => IT
[Exam] => SEM1
[student name] => Shaun
[Bio] => Football Player
)
[3] => Array (
[class] => 1styear
[branch] => Finance
[Exam] => SEM2
[student name] => Mike
[Bio] => Sport Player
)
[4] => Array (
[class] => 1styear
[branch] => IT
[Exam] => SEM2
[student name] => Martin
[Bio] => Smart
)
[5] => Array (
[class] => 1styear
[branch] => IT
[Exam] => SEM1
[student name] => Philip
[Bio] => Programmer
)
)
类,树枝,考试可以重复
我需要组以上元素和创建嵌套多维缔阵列。阵列应该是这样的 预期O/P
array(
'1styear' =>
array (
0 =>
array(
'Exam' => 'SEM1',
'branch' =>
array (
0 => 'IT'
),
),
1 =>
array(
'Exam' => 'SEM2',
'branch' =>
array (
0 => 'IT'
),
),
),
'2ndyear' =>
array (
0 =>
array(
'Exam' => 'SEM1',
'branch' =>
array (
0 => 'Finance',
),
),
1 =>
array(
'Exam' => 'SEM2',
'branch' =>
array (
0 => 'Finance'
),
)
),
)
在循环
我尝试下面的代码
foreach($data as $array){
$rr[$array["class"]]['Exam'][$array["Exam"]][] = array("Competitors" =>$array["Competitor"]) ;
}
答
$res = [];
foreach ($data as $key => $val) {
$res[$val['class']][] = ['Exam' => $val['Exam'],
'branch' => [$val['branch']]
];
}
print_r($res);
+0
它不会返回预期的o/p。它应该按考试分组,然后分组排列 – webpic
如果不是2ndyear,SEM1含有2个分支? IT和金融在multidim数组示例中? 键:$ data数组中的1和2。 –
您的输入和期望的输出似乎不匹配。 – jeroen
显示关于所需数组合成的一些想法 –