繁体   English   中英

如果给定相同数组的值,如何从php数组中提取数据

[英]How to pull data from a php array if a certain value from the same array is given

我想基于给定的信息从PHP数组中提取信息。

PHP代码是

$xmlstring = file_get_contents('file.xml');
$xml = simplexml_load_string($xmlstring);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
$HotelCodes = array('BG01I9', 'BG53I4', 'BG23I7');
$code = $HotelCodes[1];
if (!$code) {
   throw new Exception("No Hotel Code specified");
}
foreach ($HotelCodes as $code) {
  foreach ($hotels as $hotel) {
    if (strcasecmp($hotel['HotelCode'], $code) === 0) {
        echo "{$hotel['Latitude']}:{$hotel['Longitude']}<br/>";
        foreach ($hotel['HotelImages']['ImageUrl'] as $img) {
            echo "<img src='{$img}'/><hr/>";
        }
        break;
    }
  }
}

一条记录为print_r $array是(该数组有多条记录):

Array
( 
    [Hotel] => Array 
  ( 
[0] => Array ( 
     [HotelCode] => BG01I9 
     [Latitude] => 42.6039 
     [Longitude] => 23.3954 
     [HotelImages] => Array ( 
           [ImageURL] => Array ( 
                        [0] => http://image.metglobal.com/hotelimages/BG01I9/6481077_0x0.jpg 
                        [1] => http://image.metglobal.com/hotelimages/BG01I9/6481092_0x0.jpg 
                        [2] => http://image.metglobal.com/hotelimages/BG01I9/6481109_0x0.jpg 
                        [3] => http://image.metglobal.com/hotelimages/BG01I9/6481139_0x0.jpg 
                        [4] => http://image.metglobal.com/hotelimages/BG01I9/6481163_0x0.jpg 
                        [5] => http://image.metglobal.com/hotelimages/BG01I9/6480990_0x0.jpg 
                        [6] => http://image.metglobal.com/hotelimages/BG01I9/6481002_0x0.jpg 
                        [7] => http://image.metglobal.com/hotelimages/BG01I9/6481015_0x0.jpg 
                        [8] => http://image.metglobal.com/hotelimages/BG01I9/6481033_0x0.jpg 
                        [9] => http://image.metglobal.com/hotelimages/BG01I9/6481058_0x0.jpg 
   ) 
  ) 
 ) 
)

我想根据我提供的HotelCodes来显示酒店图像,经度和纬度:酒店代码为$HotelCodes[0]

收到的错误是:

Fatal error: Uncaught exception 'Exception' with message 'No Hotel Code specified' in /home/truckass/public_html/site/test/teste.php:10 Stack trace: #0 {main} thrown in /home/truckass/public_html/siteo/test/teste.php on line 10

我需要回应HotelCodes[1]

$img[1][0] ....$img[1][5] 
$Latitude[1]
$Longitude[1]

你能帮忙吗?

这是错误的:

$HotelCodes[] = array('BG01I9', 'BG53I4', 'BG23I7');

您应该省略第一个括号:

$HotelCodes = array('BG01I9', 'BG53I4', 'BG23I7');

现在,您可以使用$HotelCodes[1]访问第二个代码。

在您的代码段中,您创建了一个带有数组的数组。 这本身是完全有效的,但是您应该使用$HotelCodes[0][1]访问该值。

如果您想使用方括号,可以执行以下操作(> = 5.4):

$HotelCodes = ['BG01I9', 'BG53I4', 'BG23I7'];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM