我有一个关联的多维阵列如下面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 )
)
我需要基于来自上述阵列类似元件上以创建新的数组。意味着我必须创建数组组。例如类元素具有重复的第一年和第二年的值。所以它会抛出一些独特的元素。然后再次类是父数组和内部类数组中应该有基于分支的数组和内部的Brance考试数组和内部的考试数组中应该有学生姓名和生物的联合数组。
所以基本上阵列应该像基于类的我不喜欢下面这是工作的罚款,但如何建立内部的
$classgroup = array();
foreach($data as $inarray){
$classgroup[$inarray['class']][] = $inarray;
}
$classarray = array();
foreach($classgroup as $key => $value){
echo $key; // output is 1styear and secondyear
create array like above
}
阵列此
array(
"1styear" => array(
"IT" => array(
"SEM1" => array(
array(
"student name" => "Alex",
"Bio" => "Good Boy"
),
array(
"student name" => "Philip",
"Bio" => "Programmer"
)
),
"SEM2" => array(
array(
"student name" => "Martin",
"Bio" => "Smart"
)
)
)
),
"2ndyear" => array(
"Finance" => array(
"SEM1" => array(
array(
"student name" => "Mark",
"Bio" => "Intelligent"
)
),
"SEM2" => array(
array(
"student name" => "Mike",
"Bio" => "Sport Player"
)
)
)
)
);
为了使集团--- - - - - - - - - - - - - - - - 编辑 - - - - - - - - - - ---------------
来自下面的循环
foreach($data as $array){
$grouped[$array["class"]][$array["branch"]][$array["Exam"]][]=array("student name"=>$array["student name"],"Bio"=>$array["Bio"]);
}
我得到预期的O/P ,但如果我需要另一个O/P这样
预期的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'
),
)
),
)
我尝试下面的循环,但没有得到O/P如预期
foreach($data as $array){
$grouped[$array["class"]][]=array("Exam"=>$array["Exam"],"branch"=>$array["branch"]);
}
@mickmackusa我已经提到的应该是什么O/P,看行嵌套数组 – webpic
@mickmackusa“所以基本上阵列应该是这样”在上面的回答。 – webpic
相关:http://stackoverflow.com/questions/38366694/group-a-multidimensional-array-by-a-key-value – mickmackusa