- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
foreach ($relations as $relation) {
$structured_relations[$relation['status_name']][] = [
'id' => $relation['sl_id'],
'status' => $relation['status'],
'status_name' => $relation['status_name'],
'parent' => $relation['parent'],
'parent_name' => $relation['parent_name'],
'customer' => $relation['customer'],
'provider' => $relation['provider'],
'admin' => $relation['admin'],
];
}
return $structured_relations;
Fike 05.09.2015 01:24 # 0
guest 05.09.2015 01:46 # 0
В $structured_relations загоняются только нужные поля, а не вся строка из (?)базы
kors 05.09.2015 02:21 # 0
foreach ($relations as $k => $relation) {
$structured_relations[$k] = $relation;
$structured_relations[$k]['id'] = $relation['sl_id'];
}
return $structured_relations;
В Селекте можно сразу указать какие поля необходимо получить. Если большое количество полей, это может отрицательно повлиять на скорость при большом объёме данных.
Код не мой, а новичка, который мне пришлось форматировать и оптимизировать.
Здесь строчка моя 'id' => $relation['sl_id'], которой я считаю ошибочной и в итоге код должен получится просто
foreach ($relations as $relation) {
$structured_relations[] = $relation;
}
return $structured_relations;
Death 07.09.2015 13:41 # 0
2. перед foreach добавить как минимум if ($relations) ...
3. перед foreach можно добавить ещё $structured_relations = array();
кроме всего это итоговая структура группируется по полю $relation['status_name'], чего нет в твоём варианте!
4. т.к. поле status_name будет в итоговой структуре ключом, то в поля массива его можно не вносить!
kors 07.09.2015 13:58 # 0
"В Селекте можно сразу указать какие поля необходимо получить."
2,3) Согласен, полностью. Это есть, просто не стал приводить
4) Дублирование код, согласен
Death 07.09.2015 14:16 # 0
Плюс, возможно, может возникнуть ситуация, когда в $structured_relations поля будут отличаться по названию от из аналогов в $relations (в базе) + могут быть всякие их трансформации перед выводом.
Так что имхо там там код. Не говнокод.
Death 07.09.2015 14:21 # 0
foreach ($relations as $relation) {
$relation['id'] = $relation['sl_id'];
$structured_relations[] = $relation;
}
return $structured_relations;
// типа без $k
guest 11.09.2015 15:58 # 0
foreach ($relations as $relation) {
$structured_relations[] = $relation;
}
return $structured_relations;
до вот этого: return $relations;
)) Если конечно выше ничего там не делается с $structured_relations)
guest 11.09.2015 20:02 # 0
1. группировка по полю status_name теперь вообще не производится;
2. поле sl_id теперь вообще не принимает значение поля id.
3. харэ выёживаться - изначальный код был вполне нормальным.... немного кривым, но вполне рабочим