2014-05-13 101 views
0

我有一個由相同的鍵組成的數組。我想按鍵名分割它。我想通過TrackingId分割它。例如下面的數組包含3個跟蹤ID我想做3個不同的陣列。陣列如下 -用鍵分割動態數組。

Array 
(
    [0] => Array 
     (
      [0] => TrackingId 
      [1] => 22173753 
     ) 

    [1] => Array 
     (
      [0] => TrackingIdServ 
      [1] => 47 
     ) 

    [2] => Array 
     (
      [0] => MobileNumber 
      [1] => *********** 
     ) 
    [3] => Array 
    (
     [0] => TransSubmitter 
     [1] => TPASUA2 
    ) 

    [4] => Array 
     (
      [0] => TrackingId 
      [1] => 22153392 
     ) 

    [5] => Array 
     (
      [0] => TrackingIdServ 
      [1] => 47 
     ) 

    [6] => Array 
     (
      [0] => MobileNumber 
      [1] => ************  
     } 

    [7] => Array 
     (
      [0] => TrackingId 
      [1] => 1184031 
     ) 

    68] => Array 
     (
      [0] => TrackingIdServ 
      [1] => 47 
     ) 

    [9] => Array 
     (
      [0] => MobileNumber 
      [1] => ************ 
     ) 
) 
+0

請更改和更多詳細信息? – bwoebi

+2

提供所需的結果 – hindmost

+0

'[2] =>數組 ( [0] =>移動電話號碼 [1] => 9688484930 }'<----如何?? –

回答

0

我已經這樣做了。

$i=0; 
foreach($result as $key){ 
    $i++; 
    if($key[0]=="TrackingId"){ 
     $loc[]=$i; 
     $start[]=$i-1; 
     $end[]=$i-1; 
    } 
    $lastKey=$i; 
} 

$arrLength=count($loc); 

$chunks=array(); 

for($i=0;$i<$arrLength;$i++){ 

    $j=$i+1; 
    $v=$end[$j]-$lastKey; 

    if($start[$i]==0){ 
     $chunks[]=array_slice($result,$start[$i],$end[$j]); 
    }else if($end[$j]=="") { 
     $chunks[]=array_slice($result,$start[$i],$lastKey); 
    }else{ 
     $chunks[]=array_slice($result,$start[$i],$v); 
    } 

} 

它返回我想要的結果如下。

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [0] => TrackingId 
        [1] => 22173753 
       ) 

      [1] => Array 
       (
        [0] => TrackingIdServ 
        [1] => 47 
       ) 

      [2] => Array 
       (
        [0] => MobileNumber 
        [1] => XXXXXXXXXXX 
       ) 
      [3] => Array 
       (
        [0] => TransSubmitter 
        [1] => TPASUA2 
       ) 
     )  
     [1] => Array 
     (
      [0] => Array 
       (
        [0] => TrackingId 
        [1] => 1184031 
       ) 

      [1] => Array 
       (
        [0] => TrackingIdServ 
        [1] => 47 
       ) 

      [2] => Array 
       (
        [0] => MobileNumber 
        [1] => XXXXXXXXXXXX 
       ) 
     ) 
      [2] => Array 
     (
      [0] => Array 
       (
        [0] => TrackingId 
        [1] => 22153392 
       ) 

      [1] => Array 
       (
        [0] => TrackingIdServ 
        [1] => 47 
       ) 

      [2] => Array 
       (
        [0] => MobileNumber 
        [1] => XXXXXXXXXXX 
       ) 

      ) 
)