我有一個關聯的多維陣列如下面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