php - 在php中计算多维数组
问题描述
我需要计算一个多维数组,但有一些规则。
我的数组是这样的:
<?$array[$iddom][$idrisp][$idopt][$iddoc][$idut]=$text;?>
我有例如这个值:
[1][1][0][0][31248]=
[1][1][0][0][46619]=
[2][4][0][0][31248]=
[2][5][0][0][46619]=
[3][6][1][0][31248]=
[3][6][3][0][46619]=
[3][7][3][0][31248]=
[3][7][2][0][46619]=
[3][8][1][0][31248]=
[3][8][1][0][46619]=
[4][9][0][0][46619]=
[4][11][0][0][31248]=
[5][13][5][0][31248]=
[5][13][6][0][46619]=
[5][14][4][0][31248]=
[5][14][4][0][46619]=
[5][15][6][0][31248]=
[5][15][5][0][46619]=
[6][0][7][6][31248]=
[6][0][7][6][46619]=
如果我只想计算数组的一部分,我使用以下代码:
<?$count=array_sum(array_map("count", $array[$key]));?>
在这种情况下计数是正确的
[2][4][0][0][31248]=
[2][5][0][0][46619]=
计数的结果是 2
但在这种情况下,结果是 1
[1][1][0][0][31248]=
[1][1][0][0][46619]=
我如何计算动态数组多维?因为在另一种情况下,我需要计算另一个级别的数组,例如:
<?$count=array_sum(array_map("count", $array[$key][$key2]));?>
谢谢
解决方案
您可以包装这些功能:
$count = count(iterator_to_array(new RecursiveIteratorIterator(
new RecursiveArrayIterator($array)
)));
替换$array
为您想要应用计数的任何键,例如$array[$key][$key2]
.
推荐阅读
- powershell - Powershell从变量运行命令
- angular - 使用 AOT(--prod) 构建的 Angular cli 在单击 mat-autocomplete 或任何其他材料元素时在运行时引发错误
- python - 具有从配置文件读取 configparser 的单元测试 python 代码
- javascript - 反应:动态行失败
- python - 无法在我的 Raspberry Pi 上使用 pip 安装 Flask
- angular - Angular 2+:Primeng 风格在 angular-cli 构建/部署的应用程序中不起作用
- c# - ListCollectionView.CustomSort 是否使用稳定的排序?
- xcode - iOS 设备不允许打开分发证书未过期或未撤销的应用程序
- php - 在 foreach 循环中选择特定的 id
- iis - 在 IIS 中部署后的 okta 400