根据键合并相同的数组索引,并建立一个新的数组

问题描述:

我想合并数组索引,如
011,021,031,012,022,032,013,023,033,014,024,034。根据键合并相同的数组索引,并建立一个新的数组

$temp = array(); 
foreach($samplearray as $key => $val){ 
    foreach($val as $key1 => $val1){ 
     //what should logic here  
    } 
} 

样本阵列

$samplearray = array ("AA" => array (0 => array ("created by" => "011", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
               ), 
           1 => array ("created by" => "012", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           2 => array ("created by" => "013", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           3 => array ("created by" => "014", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              )    
           ), 
       "BB" => array (0 => array ("created by" => "021", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           1 => array ("created by" => "022", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           2 => array ("created by" => "023", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           3 => array ("created by" => "024", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              )    
           ), 
       "CC" => array (0 => array ("created by" => "031", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           1 => array ("created by" => "032", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           2 => array ("created by" => "033", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              ), 
           3 => array ("created by" => "034", 
               "date" => "12-03-14", 
               "time" => "12.00 pm" 
              )    
           ) 
       ); 

需要的输出

$newArray = array (0 => array ("created by" => "011", 
            "date" => "12-03-14", 
            "time" => "12.00 pm" 
           ), 
        1 => array ("created by" => "021", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        2 => array ("created by" => "031", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        3 => array ("created by" => "012", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ),    
        4 => array ("created by" => "022", 
            "date" => "12-03-14", 
            "time" => "12.00 pm" 
           ), 
        5 => array ("created by" => "032", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        6 => array ("created by" => "013", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        7 => array ("created by" => "023", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        8 => array ("created by" => "033", 
            "date" => "12-03-14", 
            "time" => "12.00 pm" 
           ), 
        9 => array ("created by" => "014", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        10 => array ("created by" => "024", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ), 
        11 => array ("created by" => "034", 
           "date" => "12-03-14", 
           "time" => "12.00 pm" 
           ),       
       ); 

实际上其非常简单。提示已经在标题中。 array_merge()

$newArray = array(); 
foreach ($samplearray as $key => $batch) { 
    $newArray = array_merge($newArray, $batch); 
} 

要遵循特殊的格式,你可以每次直到$samplearray用完转向他们。

例子:

$newArray = array(); 
while(true) { 
    foreach ($samplearray as $key => &$batch) { 
     $newArray[] = array_shift($batch); // shift each batch 
    } 

    if(empty($batch)) { // if it runs out, stop! 
     break; 
    } 
} 
+0

对不起它的输出错误与您的解决方案... – 2014-09-23 06:31:23

+0

@PuzzledBoy哦没关系,i'l起草另一位在只是有点 – Ghost 2014-09-23 06:35:27

+0

@ PuzzledBoy检查我的修订 – Ghost 2014-09-23 06:42:15

试试这个代码

$temp = array(); 
foreach($samplearray as $key => $val){ 
    foreach($val as $key1 => $val1){ 
     $temp[] = $val1; 
    }