У меня есть база данных MySQL, из которой я извлекаю значения для моего PHP в виде массива. Вот пример массива, который я получаю в PHP.
Теперь я хочу отсортировать этот массив и добавить аналогичные значения для столбца1. Например, Column1 содержит ключ, а column2 содержит значения. Допустим, у меня есть № 2 в столбце 1 5 раз, тогда я хочу добавить значения каждой из этих 5 строк. И то же самое для остальной части массива. Если есть ключ еще раз, я хочу добавить соответствующие значения.
Если не PHP, можно ли это сделать через запрос MySQL?
Обновлено:
ожидаемый результат будет
Позволь мне объяснить. 25 - это сумма всех значений, где 0 находится в столбце 1 и так далее до 9
В следующий раз смотрите как спросить и Почему я должен предоставить минимально воспроизводимый пример для очень простого SQL-запроса?... изображения не подходят для воспроизведения проблемы
@RaymondNijland: Да, увидев решение, я это почувствовал.






PHP: предполагая, что 0 — это столбец 1, а 1 — столбец 2.
$result = [];
foreach ($rows as $row) {
$result[$row[0]] = isset($result[$row[0]]) ? $result[$row[0]] + $row[1] : $row[1];
}
asort($result)
MySQL:
SELECT column1, sum(column2)
FROM your_table
GROUP BY column1
ORDER BY column1
Можете ли вы добавить описание того, как, по вашему мнению, это отвечает на вопрос.
Что ж, это действительно сработало. Он точно знал, чего я ожидал, великий человек. И я чувствую себя слишком нубом для такого простого ответа.
ну, я тоже добавил версию PHP, но он попросил php или mysql. и это то, что я думаю, что он просил. очень скрытым образом он спросил о сумме, сгруппированной по столбцу 1, и отсортировал ее также по столбцу 1.
Моя проблема решена со стороны MySQL. Не нужен даже PHP-скрипт
@RaymondNijland: я имею в виду ответ, который комментирую. Этот опубликованный ответ решил мою проблему.
хорошо, тогда я просто неправильно прочитал твой комментарий @Mahadev
Пожалуйста, покажите нам, какой ожидаемый результат будет здесь, чтобы сделать ваш вопрос более ясным.