2015-02-05 75 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)