php - 如何计算数组中的项目数并与特定键=>值相乘
问题描述
我正在努力计算数组中的唯一名称并与同一数组中的特定值相乘。这是我的多维数组:
Array
(
[0] => Array
(
[id] => 001
[name] => Lamborgini
[quantity] => 1
[addon] => 1
)
[1] => Array
(
[id] => 002
[name] => Ferarri
[quantity] => 1
[addon] => 2
)
[2] => Array
(
[id] => 003
[name] => Lamborgini
[quantity] => 2
[addon] => 1
)
[3] => Array
(
[id] => 004
[name] => Ferarri
[quantity] => 8
[addon] => 2
)
[4] => Array
(
[id] => 005
[name] => Lamborgini
[quantity] => 2
[addon] => 2
)
)
我想计算每个名称的唯一名称和数量,所以结果应该是:
[Lamborgini] => 3
[Ferarri] => 9
如果我使用
$counts = array_count_values(array_column($array, 'name'));
它只会计算独特的法拉利和兰博基尼的数量,但不会将数量添加到数组中。
[Lamborgini] => 2
[Ferarri] => 2
我该如何解决这个问题?我正在使用 PHP。
谢谢,米斯科
解决方案
只需foreach
遍历您的数组并将相关数据添加到新数组中:
$counts = array();
foreach ( $array as $item ) {
if (!isset($counts[$item['name']])) {
$counts[$item['name']] = $item['quantity'];
} else {
$counts[$item['name']] += $item['quantity'];
}
}
print_r($counts);
$array
是您的数组的名称,
$counts
是一个将保存计数结果的数组
推荐阅读
- mysql - MySQL 中允许零值(非空)的唯一约束
- c# - 在 while 条件和“无法写入已关闭的 TextWriter”中使用未分配的局部变量。
- php - 我在 wordpress 页面上的表单不执行
- c - 对积分的计算进行并行化
- c++ - 我们可以在 C++ 中创建除 std::cin 之外的输入流对象吗?特别是当库创建的由于 eofbit 或 failbit 而不再有效时
- laravel - Laravel Excel - MaatWebsite/Excel 的导入操作引发数据库连接未配置错误
- angular - 构建一个始终在源代码更改时重新编译的角度图像
- uwp - Microsoft Store 如何处理应用认证?
- azure - Azure 市场 - 我是否需要与 Azure 应用程序产品/服务分开创建 VM 产品/服务?
- android - 仅内部测试在从 Google Play 商店安装应用程序后显示卸载按钮