mrusklon
@mrusklon
Не получается? Яростно гугли!

Как сплюсовать все часы внутри двумерного массива php?

Есть двумерный массив
$data = [
            ['name' => 'Иванов Иван Иванович', 'date' => '12.12.19', 'hours' => '12'],
            ['name' => 'Смирнов Станислав Сланиславович', 'date' => '12.12.19', 'hours' => '12'],
            ['name' => 'Смирнов Станислав Сланиславович', 'date' => '12.12.20', 'hours' => '12'],
            ['name' => 'Смирнов Станислав Сланиславович', 'date' => '12.12.21', 'hours' => '12'],
        ];


как мне сплюсовать все часы независимо от даты у одинаковых пользователей и сделать новый массив без дублей по именам? Даты можно вообще не учитывать и в новый массив не вносить
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
TommyV888
@TommyV888 Куратор тега PHP
-
$_data = array();
foreach ($data as $v) {
    if (isset($_data[$v['name']])) {
        $_data[$v['name']]['hours'] += $v['hours'];
        continue;
    }

    $_data[$v['name']] = $v;
}

$data = array_values($_data);
Ответ написан
PavelMonro
@PavelMonro
$unique_name = array_unique($data);
$hours = array_column($unique_name, 'hours');
$hours_sum = array_sum($hours);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы