@bone_games

Группирование массива php по id?

Здравствуйте подскажите как можно сгруппировать историю изменения клиента по менеджерам
Есть запрос на получение всех полей по клиенту
SELECT * FROM " . DB_PREFIX . "customer_edit_history  WHERE customer_id = '" . (int)$customer_id . "'

Список формируем так
foreach ($history_tables as $history_table) {
$data['history_tables'][] = array(
				'date'      => $history_table['date'],
				'text'      => $history_table['text'],
				'manager'      => $history_table['manager'],
	                        'manager_id'      => $history_table['manager_id'],
				'status'      => $history_table['status']
			);
		}

Этим мы получаем полный список всех изменений менеджерами.
Выводим в шаблоне так
<?php foreach ($history_tables as $history_table) { ?>
					<tr id="history-row">
					<td class="text-left"><?php echo $history_table['date']; ?></td>
					<td class="text-left"><?php echo $history_table['text']; ?></td>
					<td class="text-left"><?php echo $history_table['manager']; ?></td>					
					<td class="text-right"><?php echo $history_table['manager_id']; ?></td>					
					</tr>
					

                    <?php } ?>

Возможно ли группировать по manager_id?
То есть необходимо группировать таблицы по каждому менеджеру сколько и какие он совершил действия.
Всем заранее спасибо кто откликнется надеюсь объяснил понятно)
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MikUrrey
Для этого дополните массив еще одним уровнем, индексом менеджера:
foreach ($history_tables as $history_table) {
    //если данного менеджера еще нет в массиве, создаем его
    $manager_id = $history_table['manager_id'];
    if (!isset($data['history_tables'][$manager_id])) {
      $data['history_tables'][$manager_id] = array();
    }
    $data['history_tables'][$manager_id][] = array(
        'date'      => $history_table['date'],
        'text'      => $history_table['text'],
        'manager'      => $history_table['manager'],
        'manager_id'      => $history_table['manager_id'],
        'status'      => $history_table['status']
      );
}
Ответ написан
Ваш ответ на вопрос

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

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