PHP在多维数组中合并类似对象

时间:2011-08-24 21:27:52

标签: php multidimensional-array

我在PHP中有一个多维数组,看起来像:

array(array(Category => Video,
            Value => 10.99),
      array(Category => Video,
            Value => 12.99),
      array(Category => Music,
            Value => 9.99)
)

我想要做的是组合相似的类别并将所有内容输出到一个表中,因此输出最终将成为:

<tr><td>Video</td><td>23.98</td></tr>
<tr><td>Music</td><td>9.99</td></tr>

有关如何执行此操作的任何建议吗?

编辑: 如果更容易的话,我可以将它们放在两个不同的数组中。

2 个答案:

答案 0 :(得分:1)

一个简单的循环可以:

$array = [your array];
$result = array();
foreach ($array as $a) {
    if (!isset($result[$a['Category']])) {
        $result[$a['Category']] = $a['Value'];
    } else {
        $result[$a['Category']] += $a['Value'];
    }
}
foreach ($result as $k => $v) {
    echo '<tr><td>' . htmlspecialchars($k) . '</td><td>' . $v . '</td></tr>';
}

答案 1 :(得分:1)

$result = array();
foreach ($array as $value) {
  if (isset($result[$value['Category']])) {
    $result[$value['Category']] += $value['Value'];
  } else {
    $result[$value['Category']] = $value['Value'];
  }
}
foreach ($result as $category => $value)  {
  print "<tr><td>$category</td><td>$value</td></tr>";
}