Группируйте многомерные данные по одному столбцу и создавайте подмассивы в каждой группе.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Группируйте многомерные данные по одному столбцу и создавайте подмассивы в каждой группе.

Сообщение Anonymous »

У меня есть страница на PHP, на которой я получаю XML-данные с сервера и хочу сохранить эти данные в массиве.
Это мой код:

Код: Выделить всё

foreach ($xml->DATA as $entry){
foreach ($entry->HOTEL_DATA as $entry2){
$id = (string)$entry2->attributes()->HOTEL_CODE;
$hotel_array2 = array();
$hotel_array2['id'] = $entry2->ID;
$hotel_array2['name'] = utf8_decode($entry2->HOTEL_NAME);
$i=0;
foreach($entry2->ROOM_DATA as $room){
$room_array = array();
$room_array['id'] = (string)$room->attributes()->CCHARGES_CODE;
$hotel_array2['rooms'][$i] = array($room_array);

$i++;
}
array_push($hotel_array, $hotel_array2);
}
}
В этом режиме у меня есть массив hotel_array, в котором указаны все отели с номерами.
Проблема в том, что: в моем XML я могу указать несколько отелей с одинаковым идентификатором (один и тот же отель) с той же информацией, но с разными номерами.
Если у меня есть отель, который я уже вставил в свой массив hotel_array, я не хочу вставлять в него новый массив, а хочу только взять его массив номеров и вставить в существующий отель.
Пример сейчас моя ситуация такова:

Код: Выделить всё

hotel_array{
[0]{
id = 1,
name = 'test'
rooms{
id = 1
}
}
[0]{
id = 2,
name = 'test2'
rooms{
id = 100
}
}
[0]{
id = 1,
name = 'test'
rooms{
id = 30
}
}
}
Вместо этого я бы хотел получить такой результат:

Код: Выделить всё

hotel_array{
[0]{
id = 1,
name = 'test'
rooms{
[0]{
id = 1
}
[1]{
id = 30
}
}
}
[0]{
id = 2,
name = 'test2'
rooms{
id = 100
}
}
}
Как создать такой массив?

Подробнее здесь: https://stackoverflow.com/questions/173 ... each-group
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»