2015-01-15 2 views
1

Я хочу извлечь информацию из массива PHP на основе данных.Как извлечь данные из массива 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] 

Не могли бы вы помочь.

ответ

1

Это ошибка:

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

Вы должны опустить первые скобки:

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

Теперь вы можете получить доступ к второму коду с помощью $HotelCodes[1].

В вашем фрагменте вы создали массив с массивом. Это само по себе совершенно справедливо, но тогда вы должны получить доступ к значению с помощью $HotelCodes[0][1].

Если вы хотите придерживаться квадратных скобок, вы можете сделать это (> = 5,4):

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

Теперь я получаю «Предупреждение: Недействительный аргумент для Еогеаспа() в» из строки «Еогеаспа ($ отели как $ hotel) {' –

+1

Я не вижу $ отелей, определенных где угодно. – Sherlock

Смежные вопросы