Eu tenho uma matriz multidimensional em PHP, algo que se parece com:
array(array(Category => Video,
Value => 10.99),
array(Category => Video,
Value => 12.99),
array(Category => Music,
Value => 9.99)
)
e o que eu gostaria de fazer é combinar categorias semelhantes e exportar tudo para uma tabela, então a saída acabaria sendo:
<tr><td>Video</td><td>23.98</td></tr>
<tr><td>Music</td><td>9.99</td></tr>
Alguma sugestão sobre como fazer isso?
EDITAR: Eu posso tê-los em duas matrizes diferentes, se isso fosse mais fácil.
Respostas:
1 para resposta № 1Um simples loop fará:
$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 para resposta № 2
$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>";
}