从两个数组PHP计数

时间:2015-02-08 16:11:38

标签: php arrays multidimensional-array

我有两个数组,arrLevel1和arrLevel2 我想数一下可以行走的动物 我怎么能像这样做阵列结构呢? 先谢谢。我已经尝试过,但失败了。
arrLevel1:

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"
  }
}

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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);
?>

希望帮助你