Gruppieren Sie mehrdimensionale Daten nach einer Spalte und erstellen Sie in jeder Gruppe UnterarraysPhp

PHP-Programmierer chatten hier
Guest
 Gruppieren Sie mehrdimensionale Daten nach einer Spalte und erstellen Sie in jeder Gruppe Unterarrays

Post by Guest »

Ich habe eine Seite in PHP, auf der ich XML-Daten von einem Server abrufe und diese Daten in einem Array speichern möchte.
Das ist mein Code:

Code: Select all

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);
}
}
In diesem Modus habe ich das Array hotel_array, das alle Hotels mit Zimmern enthält.
Das Problem ist: In meinem XML kann ich mehrere Hotels mit derselben ID (dasselbe Hotel) haben. mit denselben Informationen, aber unterschiedlichen Zimmern.
Wenn ich ein Hotel habe, das ich bereits in mein hotel_array eingefügt habe, möchte ich kein neues Array darin einfügen, sondern nur das Zimmerarray nehmen und in das vorhandene einfügen Hotel.
Beispiel jetzt mein Situation ist, dass:

Code: Select all

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
}
}
}
Ich hätte stattdessen gerne dieses Ergebnis:

Code: Select all

hotel_array{
[0]{
id = 1,
name = 'test'
rooms{
[0]{
id = 1
}
[1]{
id = 30
}
}
}
[0]{
id = 2,
name = 'test2'
rooms{
id = 100
}
}
}
Wie erstelle ich ein Array wie dieses?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post