Перебор массива средствами php

195
01 февраля 2018, 19:09

Структура массива:

{"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|

Answer 1

Предлагаю такой вот вариант:

<?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]
Answer 2
// Исходный массив
$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>';
}
Answer 3

Если данные приходят из MySQL, то MySQL'ом и сложили бы.

Запрос примерно такой:

SELECT `site` , COUNT( `site` ) AS `count_site`
FROM `table`
GROUP BY `site`
LIMIT 0 , 30
READ ALSO
Modx Revo, minishop2, вывод не типовых товаров

Modx Revo, minishop2, вывод не типовых товаров

С minishop2 раньше не работалКак можно реализовать функционал для товаров с разными ценами(скидкой) в зависимости от вида как на этой странице...

191
Запрос зависимый минимум от двух, или больше совпадений

Запрос зависимый минимум от двух, или больше совпадений

Необходимо составить запрос который ищет возможные совпадения, но надо что бы он срого учитывал 2 условия

260
Использование __ и ____ в PHP

Использование __ и ____ в PHP

Проходил тест и там были вопросы, которые я не понял

183