Структура массива:
{"id":31,"site":"dev.2","total":"11"}
{"id":42,"sitу":"dev.1","total":"13"}
{"id":63,"site":"dev.2","total":"15"}
Требуется прогнать в цикле и вывести на экран:
Сайт|Cумма|
dev.2|26|
dev.1|13|
Предлагаю такой вот вариант:
<?php
$array = ['{"id":31,"site":"dev.2","total":"11"}',
'{"id":42,"site":"dev.1","total":"13"}',
'{"id":63,"site":"dev.2","total":"15"}'];
$newArray = [];
foreach ($array as $elem) {
$json = json_decode($elem);
if(isset($newArray[$json->site])) {
// Если ключ есть, то суммируем с текущим значением
$newArray[$json->site] += intval($json->total);
} else {
// Если ключа нет, то добавляем его
$newArray[$json->site] = intval($json->total);
}
}
var_dump($newArray); // Тут массив вида ['dev.2' => 26, 'dev.1' => 13]
// Исходный массив
$array = [
["id" => 31,"site" => "dev.2", "total" => "11"],
["id" => 42,"site" => "dev.1", "total" => "13"],
["id" => 63,"site" => "dev.2", "total" => "15"]
];
// Выводим заголовок таблицы
echo 'Сайт|Сумма<br>';
// Проходимся по каждому подмассиву исходного массива
foreach($array as $elem)
{
// Выводим нужные данные каждого элемента
echo $elem['site'].' '.$elem['total'].'<br>';
}
Если данные приходят из MySQL, то MySQL'ом и сложили бы.
Запрос примерно такой:
SELECT `site` , COUNT( `site` ) AS `count_site`
FROM `table`
GROUP BY `site`
LIMIT 0 , 30
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
С minishop2 раньше не работалКак можно реализовать функционал для товаров с разными ценами(скидкой) в зависимости от вида как на этой странице...
Необходимо составить запрос который ищет возможные совпадения, но надо что бы он срого учитывал 2 условия