我创建了一个带循环的
$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处于shuffle模式,我需要使用我的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 :(得分: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
答案 1 :(得分:0)
好吧,您可以使用uasort
函数,如果您想要比较数组元素的值,如果您想使用键(哪些是ID),您可以使用ksort
checkout what functions,您可以使用它来排序数组并同时保持相同的密钥