2017-03-24 59 views
-2

我已經創建了一個循環創建多個陣列,如何排序在PHP

$i=0; 
foreach($xml->xpath('//ns2:Soap_Model_SOAP_Hotel_Room') as $rooms) 
{ 
    $room_details[$i]['room_name']=$rooms->name; 
    $room_details[$i]['room_id']=$rooms->id; 
    $room_details[$i]['room_price']=$rooms->price->value; 
    $i++; 
} 

,並調用這個數組與其他for循環中,而是存儲在陣列中的ID是隨機播放模式,我需要安排與我的id assoc命令模式全陣列式

目前顯示爲

room id : 106556, room price : 22718.65, room name : Deluxe 
 
room id : 106559, room price : 22718.65, room name : Deluxe 
 
room id : 106557, room price : 22718.65, room name : Deluxe 
 
room id : 106560, room price : 22718.65, room name : Deluxe 
 
room id : 106558, room price : 22718.65, room name : Deluxe 
 
room id : 106561, room price : 22718.65, room name : Deluxe 
 
room id : 106562, room price : 31456.62, room name : Club 
 
room id : 106565, room price : 31456.62, room name : Club 
 
room id : 106563, room price : 31456.62, room name : Club 
 
room id : 106566, room price : 31456.62, room name : Club 
 
room id : 106564, room price : 31456.62, room name : Club 
 
room id : 106567, room price : 31456.62, room name : Club

我需要用id對這個數組進行排序,它有多可能?

+0

只使用房間號分配它然後鍵排序 – Ghost

+0

http://php.net/manual/en/array.sorting.php這裏應該有些東西可以幫助您 –

+0

但我需要鍵值爲1,2,3模式。後 –

回答

0

我建議分配房間ID作爲鍵,然後ksort它。分類後,重置密鑰,只需使用array_values。它會從0索引重置它。

// assign using room id 
foreach ($xml->xpath('//ns2:Soap_Model_SOAP_Hotel_Room') as $rooms) { 
    $room_details[$rooms->id]['room_name'] = $rooms->name; 
    $room_details[$rooms->id]['room_id'] = $rooms->id; 
    $room_details[$rooms->id]['room_price'] = $rooms->price->value; 
} 
ksort($room_details); // sort by key 
$room_details = array_values($room_details); // reassign keys 
+0

鍵重新分配,如果對數據進行排序也重新分配? –

+0

@Midhun沒有它不,它保留了有序陣列 – Ghost

+0

是啊,我已經改正謝謝 –

0

好了,你可以使用uasort功能,如果你消磨比較數組元素的值,如果你想使用的密鑰(偉馳是IDS),你可以在用戶ksort 結賬what functions您可以使用數組排序和同時保持同樣的密鑰