如果我有一个数组,如 -
Products (
'ProductA' (
'color' => 'red',
'serial' => '1234a'
),
'ProductB' (
'color' => 'blue',
'size' => 'large'
),
'ProductC' (
'color' => 'green',
'serial' => '4567b'
)
)
有没有办法做某事 -
count($products[*]['serial'])
我只需要计算所有具有'连续'索引的产品....使用[]和[*]不起作用。
答案 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_filter
与isset
结合使用:
$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;
希望有所帮助