繁体   English   中英

如何在PHP中对数组中的数组进行计数

[英]How to count an array inside an array in PHP

例如:

Array
(
[0] => Array
    (
        [id] => 1
        [name] => Test
        [slug] => test
        [services] => Array
            (
               [0] => Array
                   (
                       [name] => test
                   )
               [1] => Array
                   (
                       [name] => test
                   )
               [2] => Array
                   (
                       [name] => test
                   )
               [3] => Array
                   (
                       [name] => test
                   )
            )    
     )   
[1] => Array
    (
        [id] => 1
        [name] => Test
        [slug] => test
        [services] => Array
            (
               [0] => Array
                   (
                       [name] => test
                   )
               [1] => Array
                   (
                       [name] => test
                   )
               [2] => Array
                   (
                       [name] => test
                   )
               [3] => Array
                   (
                       [name] => test
                   )
            )    
     )  

这只是简单的伪数据,但是我想计算每个数组中的服务数量,但我正在寻找一种有效的方法。

现在我要做的是:

foreach($arrayAbove as $array){

    $i = 0;
    foreach($array['services'] as $array){
        $i++;
    }
}

有一个更好的方法吗?

foreach($arrayAbove as $array){

    $i = count($array['services']);
    print_r($i);
}

如果要总体计数:

$i = 0;
foreach($arrayAbove as $array){

     $i += count($array['services']);
}
print_r($i);

这是一种有趣的方式:

$result = array_reduce($array, function($c, $v) { return $c + count($v['services']); });

使用PHP sizeof()函数

foreach($arrayAbove as $array){

    $sub_array = sizeof($array['services']);           
    $total = $total + $sub_array;
}

echo 'Sub Array count is : '.$total;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM