2015-02-08 54 views
-1

我有兩個數組arrLevel1和arrLevel2。
我想要算可以走路的動物。
我該如何做這樣的陣列結構?之前的Thx。我已經嘗試過了,但失敗了。
arrLevel1:從兩個數組中計數php

array(4) { 
    [0]=> 
    array(1) { 
    ["Walk"]=> 
    string(4) "Bird" 
    } 
    [1]=> 
    array(1) { 
    ["Walk"]=> 
    string(3) "Cat" 
    } 
    [2]=> 
    array(1) { 
    ["Fly"]=> 
    string(9) "ButterFLy" 
    } 
    [3]=> 
    array(1) { 
    ["Fly"]=> 
    string(4) "Bird" 
    } 
} 

arrLevel2:做

array(3) { 
    [0]=> 
    array(1) { 
    ["Animal"]=> 
    string(3) "Fly" 
    } 
    [1]=> 
    array(1) { 
    ["Animal"]=> 
    string(11) "Walk" 
    } 
    [2]=> 
    array(1) { 
    ["Human"]=> 
    string(11) "Walk" 
    } 
} 
+0

請發表您試圖代碼,並解釋它的所作所爲還是沒有這樣做,使得它錯。 – 2015-02-08 16:18:56

回答

0

一種方法是使用array_reduce()

$array = array(array('Walk' => 'Bird'), array('Walk' => 'Cat'), array('Fly' => 'ButterFly'), array('Fly' => 'Bird')); 

$count = array_reduce($array, function($carry, $item) { 
    return key($item) == 'Walk' ? $carry + 1 : $carry; 
}, 0); 

var_dump($count); 

您可以使用類似的代碼的第二個版本:

$array = array(array('Animal' => 'Fly'), array('Animal' => 'Walk'), array('Human' => 'Walk')); 

$count = array_reduce($array, function($carry, $item) { 
    return reset($item) == 'Walk' ? $carry + 1 : $carry; 
}, 0); 

var_dump($count); 
0

只是檢查它們在一個循環 對於第一arrLevel1:

<?php 
$arrLevel1 = array(array("walk"=>"Bird"),array("walk"=>"Cat"),array("Fly"=>"Butterfly"),array("Fly"=>"Bird")); 
$x = 0; 
foreach($arrLevel1 as $p){ 

if($p["walk"]!==null){ 
$x++; 
} 

} 
var_dump($x); 
?> 

希望thsi幫助你