根据给定的信息从PHP数组中提取数据

时间:2015-01-17 12:54:46

标签: php arrays

我正在尝试从我提供HotelCode的php数组中提取ImageUrl Lat Long :{{1} }

我的XML文件类似于以下代码:

$hotelCode

我的PHP代码是:

<Hotels>
    <Hotel>
        <HotelCode>Code<HotelCode>
        <Latitude>Lat</Latitude>
        <Longitude>Long</Longitude>
        <HotelImages>
            <ImageURL>file.jpg</ImageURL>
            <ImageURL>file2.jpg</ImageURL>
            ....
        </HotelImages>
    </Hotel>
    ....
</Hotels>

我尝试了一些不同的方法,但没有一种方法有效。

2 个答案:

答案 0 :(得分:0)

好吧,首先你的xml中有错误。

<HotelCode>Code<HotelCode>

应该是:

<HotelCode>Code</HotelCode>

之后,您可以使用以下方式获取图像:

$hotels['Hotel']['HotelImages']['ImageURL'][0];

$hotels['Hotel']['HotelImages']['ImageURL'][0];

并且长期分别是:

$hotels['Hotel']['Latitude'];

$hotels['Hotel']['Longitude'];

您可以使用foreach循环[Hotel]数组,并检查[HotelCode]元素是否与您提供的元素相同,然后返回lat和long属性。

    foreach ($hotels as $hotel) {
    if($hotel['HotelCode'] == 'YourCode'){
        echo $hotel['Latitude'];
        echo $hotel['Longtitude'];
    }
}

答案 1 :(得分:0)

使用array_keys

$hotelCodes = array_keys($hotels, "HotelCode");

这将使用键“HotelCode”返回所有值。然后你可以用这些值循环数组。

foreach ($hotelCodes as $code)
{
     $iUrls = $hotels[$code]['HotelImages']['ImageURL'];
     foreach ($iUrls as $iUrl)
     {
         echo $iUrl;
     }
     echo $hotels[$code]['Latitude'];
     echo $hotels[$code]['Longitude'];
}