我有包含酒店数组的数组,
重要说明:
酒店意外的数组
意外房间的数组数
我使用php 5.3在这个项目中工作。所以一些新的PHP功能不起作用
// the first hotel info array
id:52548
Le Meridien Heliopolis
51 Al Orouba Street Heliopolis Po Box 2928
stars 5
rooms 255
//description
Set in one of the finest residential districts of Cairo, the Le Meridien Heliopolis
is ideally located near the Cairo International Conference Centre,
// image
http://cdn.wego.com/gazo/88/2f1ceaef3b36d83d13bb01b0f413298bb2e42514/137974_B.jpg
// this array contains rooms info in this hotel
Array
(
[0] => stdClass Object
(
[id] => 119-9
[price_str] => 95
[currency_code] => USD
[currency_sym] => US$
[provider_name] => Le Meridien
[provider_code] => lemeridien.com
[ex_tax] => 1
[is_direct] => 1
)
[1] => stdClass Object
(
[id] => 6-1
[price_str] => 104
[currency_code] => USD
[currency_sym] => US$
[provider_name] => Booking.com
[provider_code] => booking.com
[ex_tax] =>
[is_direct] =>
)
[2] => stdClass Object
(
[id] => 88-201
[price_str] => 104
[currency_code] => USD
[currency_sym] => US$
[provider_name] => Wego
[provider_code] => wego.com
[ex_tax] =>
[is_direct] =>
)
)
// the second hotel info
id:52629
Holidays Express Hotel
2 Gameat El Dowal El Arabyia St.,Sphinx Square , Mohandessin
stars 4
rooms
// desciption
With its central location, Holidays Express Hotel is within easy reach of most
tourist attractions and business addresses in Cairo.
// image
http://cdn.wego.com/gazo/43/78be2c05a7069febbfc15b88d40af58cc8871751/7350810_B.jpg
// the rooms info for this hotel
Array
(
[0] => stdClass Object
(
[id] => 6-1
// i want to sort by lowest price_str
[price_str] => 63
[currency_code] => USD
[currency_sym] => US$
[provider_name] => Booking.com
[provider_code] => booking.com
[ex_tax] =>
[is_direct] =>
)
[1] => stdClass Object
(
[id] => 88-201
[price_str] => 63
[currency_code] => USD
[currency_sym] => US$
[provider_name] => Wego
[provider_code] => wego.com
[ex_tax] =>
[is_direct] =>
)
[2] => stdClass Object
(
[id] => 70-1
[price_str] => 69
[currency_code] => USD
[currency_sym] => US$
[provider_name] => DHR.com
[provider_code] => dhr.com
[ex_tax] => 1
[is_direct] =>
)
)
答案 0 :(得分:1)
#
<?php
$price_list = array(); // the lowest price of each hotel stroes in this array, indexed by the index of each hotel in $hotels array
foreach ($hotels->json_data->hotels as $hotel_index => $hotel)
{
// find out the lowest price of this hotel
$min_price = 0;
foreach ($hotel->room_rates as $room)
{
if ($min_price == 0 || $room->price_str < $min_price)
{
$min_price = $room['price_str'];
}
}
$price_list[$hotel_index] = $min_price;
}
// sort by price
asort($price_list, SORT_NUMERIC);
// fetch the top hotel
$count = 0;
$list = array();
foreach ($price_list as $index => $price)
{
$list[] = $hotels->json_data->hotels[$index];
$count++;
if ($count > 5)
{
break;
}
}