首页 > 解决方案 > 如何计算数组中的项目数并与特定键=>值相乘

问题描述

我正在努力计算数组中的唯一名称并与同一数组中的特定值相乘。这是我的多维数组:

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。

谢谢,米斯科

标签: phpmultidimensional-arraycount

解决方案


只需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是一个将保存计数结果的数组


推荐阅读