@Chiang
2020-08-29T09:07:17.000000Z
字数 815
阅读 1015
2020-08 工作总结
当然大家可能会想直接使用
foreach循环,下面是我的想法
如下数组我需要计算出数组
$arr的底层最里面元素个数(即8个),我们的第三维数组里至少是有一条数据的.
$arr = [[[100],],[[103, 'a3'],],[[104, 'a4'],[105, 'a5', 'a6'],],];
foreach: 因为 第三维数组里至少是有一条数据的 所以foreach立马浮现,但是要写好几个嵌套,有点繁琐.count: 后来想着count是计算数组元素个数的,那能计算多维嘛!!
资料显示:
count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int
mode
如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。
但是它计算出来的值是 15个 不是我想要的值.- 把数组转成一维数组,然后再求和运算.
可实现函数:
array_reduce();
array_walk_recursive();
array_map();
用
array_walk_recursive()函数就非常灵活,可以把任意维度的数组转换成一维数组。
$result = [];array_walk_recursive($arr, function($value) use (&$result) {array_push($result, $value);});$result // [100, 103, 'a3', 104, 'a4', 105, 'a5', 'a6'];count($result); //8
参考资料:
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
PHP多维数组中统计元素个数
count
PHP教程 计算多维数组中的元素个数
