fogersp
@fogersp

PHP: вывод из двух разных массивов параллельно?

Добрый день! Затупил и не могу решить проблему, а очень срочно надо. Вроде все должно быть просто:

Есть массив users_mts:
$users_mts = array("sum_mts" => round($sum, 2),
          "phone" => $phone,
          "id" => $id));

и есть массив users:
$users = array("id" => $uid, 
            "name" => $u_name,
            "rent" => round($rent[0], 2),
            "sum" => round($stat[0], 2)));


Собираются в разных местах при разных sql-запросах. Цель такая: нужно вывести таблицу с такими данными:

| id | name | rent | sum | sum_mts |

Т.е. мне нужно банально вывести содержимое массива $users, но параллельно с этим еще и колонку со значением sum_mts из первого массива $users_mts. И главное чтобы "id" из массива $users_mts совпадали с "id" из второго массива $users.

Подскажите как это делается?
array_push? пробовал, но что-то с циклами намудрил.
  • Вопрос задан
  • 662 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Вам нужно просто массив $users_mts проиндексировать по id:
$users_mts[$id] = [
    "sum_mts" => round($sum, 2),
    "phone" => $phone,
];
Ответ написан
$table = [];
foreach ($users as $user) {

    foreach ($users_mts as $user_mts) {
        if ($user_mts['id'] == $user['id']) {
            $user['sum_mts'] = $user_mts['sum_mts'];
            break;
        }
    }

    $table[] = $row;
}


В $table будет все, что нужно.

Можно ускорить процесс. Индексируем $user_mts по id и ищем сразу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы