PHP - 嵌套的多维数组索引计数

时间:2014-08-21 15:22:02

标签: php arrays multidimensional-array count

如果我有一个数组,如 -

 Products ( 
      'ProductA' (
        'color' => 'red',
        'serial' => '1234a'
      ),

      'ProductB' (
        'color' => 'blue',
        'size' => 'large'
      ),

      'ProductC' (
        'color' => 'green',
        'serial' => '4567b'
      )
    )

有没有办法做某事 -

count($products[*]['serial'])

我只需要计算所有具有'连续'索引的产品....使用[]和[*]不起作用。

4 个答案:

答案 0 :(得分:1)

$counter=0;
foreach($products as $product)
{
   if(isset($product["serial"]))
   $counter++;
}
echo $counter;

答案 1 :(得分:1)

PHP> = 5.5.0要求:

$result = count(array_column($products, 'serial'));

答案 2 :(得分:0)

您可以将array_filterisset结合使用:

$count = count(array_filter($array, function ($v) {
    return isset($v['serial']);
}));

答案 3 :(得分:0)

使用数组过滤器清除解决方案

      $products = array(
        'ProductA' => array(
                    'color' => 'red',
                    'serial' => '1234a'
                    ),
        'ProductB' => array(
                    'color' => 'red',
                    'size' => 'large'
                    ),
        'ProductC' => array(
                    'color' => 'red',
                    'serial' => '1234a'
                    ),
            );

    $nr = count(array_filter($products, function($arr) { return !empty($arr['serial']); }));
    echo $filtered;

希望有所帮助