1
$example = 
  array
    'test' =>
      array(
        'something' => 'value'
      ),
    'whatever' =>
      array(
        'something' => 'other'
      ),
    'blah' =>
      array(
        'something' => 'other'
      )
  );

我想计算有多少$example的子数组包含一个值为 的元素other

这样做最简单的方法是什么?

4

2 回答 2

6

array_filter()是你需要的:

count(array_filter($example, function($element){

    return $element['something'] == 'other';

}));

如果您想更灵活:

$key = 'something';
$value = 'other';

$c = count(array_filter($example, function($element) use($key, $value){

    return $element[$key] == $value;

}));
于 2012-09-02T02:24:52.093 回答
1

您可以尝试以下方法:

$count = 0;
foreach( $example as $value ) {
    if( in_array("other", $value ) )
        $count++;
}
于 2012-09-02T02:28:30.390 回答