大家好我有一個頁面到PHP,我從服務器檢索XML數據,我想將這些數據存儲到一個數組中。創建數組嵌套的PHP
這是我的代碼:
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中,我可以擁有多個具有相同ID(相同酒店)的酒店,但信息相同但房間不同。 如果我有一個酒店,我已經插入到我的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
}
}
}
如何創建一個這樣的數組?
感謝
使用關聯數組,其中ID是關鍵。然後檢查元素是否已經存在,並添加新房間而不是創建新元素。 – Barmar
在http://stackoverflow.com/questions/17336004/php-array-merge中查看我的回答,發現類似的問題,他希望在具有相同ID的條目中添加一個元素。 – Barmar
Thanks @Barmar謝謝我已經看到這是另一個很好的解決方案 –