2015-02-05 105 views
0

我有數組是這樣的:分裂陣列基於價值

 array(4) { 
    [0]=> 
    array(2) { 
    [0]=> 
    string(2) "L2" 
    [1]=> 
    string(5) "Apple" 
    } 
    [1]=> 
    array(2) { 
    [0]=> 
    string(2) "L3" 
    [1]=> 
    string(3) "Cat" 
    } 
    [2]=> 
    array(2) { 
    [0]=> 
    string(2) "L2" 
    [1]=> 
    string(6) "Orange" 
    } 
    [3]=> 
    array(2) { 
    [0]=> 
    string(2) "L3" 
    [1]=> 
    string(3) "Dog" 
    } 
} 

我希望做一個結論:
一)什麼是L2的內容?
b)什麼是L3的內容?

所以我做數組$ L2和$ L3。
但是,我不知道如何推動一個數組中的一些數組。
我已經嘗試這一個:

for($j=0; $j<count($arrL); $j++){ 
    if($arrL[$j][0] == "L2"){ 
      $L2[] = $arrL[$j][1]; 
    }else if($arrL[$j][0] == "L3"){ 
      $L3[] = $arrL[$j][1]; 
    } 
} 

但是,結果是:

array(0) { 
} 

你有什麼想法?

+0

你的代碼運行得很好利用人工就像爲$ ARRL所示的一個數組我。有可能還有別的東西不能正常工作嗎?你正確地測試$ L2和$ L3嗎? $ arrL是否可能不是如圖所示構造的? – joe42

+0

是的,沒有看到任何錯誤。 –

回答

1

你的代碼很好。如果我明白你想要什麼,那麼這可能會幫助你。這是我使用的代碼:

$arrL = array(
     0 => array(
        0 => "L2", 1 => "Apple" 
       ), 
     1 => array(
        0 => "L3", 1 => "Cat" 
       ), 
     2 => array(
        0 => "L2", 1 => "Orange" 
       ), 
     3 => array(
        0 => "L3", 1 => "Dog" 
       ) 
    ); 

for($j=0; $j<count($arrL); $j++){ 
    if($arrL[$j][0] == "L2"){ 
     $L2[] = $arrL[$j][1]; 
    }else if($arrL[$j][0] == "L3"){ 
     $L3[] = $arrL[$j][1]; 
    } 
} 

echo 'My L2 Array: '; 
print_r($L2); 

echo 'My L3 Array: '; 
print_r($L3); 

這裏是輸出:

My L2 Array: Array ([0] => Apple [1] => Orange) My L3 Array: Array ([0] => Cat [1] => Dog)