2017-02-27 133 views
-1

我有阵列命名的数据如下面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"]) ; 
} 
+0

如果不是2ndyear,SEM1含有2个分支? IT和金融在multidim数组示例中? 键:$ data数组中的1和2。 –

+2

您的输入和期望的输出似乎不匹配。 – jeroen

+0

显示关于所需数组合成的一些想法 –

回答

0
$res = []; 
foreach ($data as $key => $val) { 
    $res[$val['class']][] = ['Exam' => $val['Exam'], 
          'branch' => [$val['branch']] 
     ]; 
} 

print_r($res); 
+0

它不会返回预期的o/p。它应该按考试分组,然后分组排列 – webpic