2017-01-16 3 views
0

У меня есть длинный ассоциативный массив, но я показываю небольшую часть его здесь:нужно повторить только первый элемент ассоциативного массива в Еогеасп PHP

Array 
(
[0] => Array 
    (
     [0] => Array 
      (
       [RoomType] => Array 
        (
       [@roomTypeId] => 1927848 
       [RoomImages] => Array 
        (
         [RoomImage] => Array 
          (
           [0] => Array 
            (
             [url] => http://media.expedia.com/hotels/2000000/1620000/1611500/1611477/1611477_106_s.jpg 
            ) 
          ) 

        ) 
        )  
      ) 
    ) 


     [1] => Array 
      (

       [RoomType] => Array 
        (
         [@roomTypeId] => 1927848 
        [RoomImages] => Array 
         (
        [RoomImage] => Array 
          (
           [0] => Array 
            (
             [url] => http://media.expedia.com/hotels/2000000/1620000/1611500/1611477/1611477_106_s.jpg 
            ) 


          ) 

        ) 

      ) 

    ) 

[1] => Array 
    (
     [0] => Array 
      (
       [RoomType] => Array 
        (
       [@roomTypeId] => 1927848 
       [RoomImages] => Array 
        (
         [RoomImage] => Array 
          (
           [0] => Array 
            (
             [url] => http://media.expedia.com/hotels/2000000/1620000/1611500/1611477/1611477_106_s.jpg 
            ) 
          ) 

        ) 
        )  
      ) 
    ) 


     [1] => Array 
      (

       [RoomType] => Array 
        (
         [@roomTypeId] => 1927848 
        [RoomImages] => Array 
         (
        [RoomImage] => Array 
          (
           [0] => Array 
            (
             [url] => http://media.expedia.com/hotels/2000000/1620000/1611500/1611477/1611477_106_s.jpg 
            ) 


          ) 

        ) 

      ) 

    ) 

)

Что мне нужно здесь чтобы печатать только [url] один раз для каждого элемента. Как у нас есть два элемента в массиве [0] и два элемента в массиве [1], но мне нужно напечатать url для них только один раз для каждого массива.

Я не уверен, написано ли оно в хорошей форме. пожалуйста, исправьте его, если есть ошибки.

прилагается изображение например.

Спасибо за помощь. Но мне не нужен массив url. Но я хочу, чтобы напечатать их, пропуская другие .Вы можете увидеть ниже:

foreach($group as $k => $v){ 
    foreach($v as $key => $hotelRoom){ 
     <tbody class="<?php echo $iscollapse; ?> searchpage<?php echo $page; ?>"> 
      <tr> 
       <td> 
        <div> 
         <?php if(array_key_exists('RoomImages',$hotelRoom)) { ?> 
           <img src="<?php echo setHotelImage($hotelRoom['RoomImages']['RoomImage']['0']['url'],'_b','_s'); ?>" class="img-responsive"> 
         <?php } ?> 
        </div> 
       </td> 
      <td> 
     </tr> 
    </tbody> 
    } 
} 

Я печатая массив, как это уже где $group является массив из writtenabove. В этом примере foreach вы можете видеть, что он печатает это изображение для каждого элемента. поэтому я хочу пропустить это для других элементов и напечатать только для первого.

+1

Хикмет ответ работает для вас, но это не динамический. Чтобы сделать его динамическим, используйте foreach() –

+0

@Rimpy Kakeyalia проверьте следующее. –

+0

@ Mayank Pandeyz спасибо за предложение. Проверьте следующее. –

ответ

1

Попробуйте, как это ..

echo $array[0][0]['RoomImages']['RoomImage'][0]['url'];//image url from first array indexed at 0 
echo $array[1][0]['RoomImages']['RoomImage'][0]['url'];//image from second array indexed at 1 

ИЛИ сделать массив URL, как показано ниже:

foreach($array as $key=>$value){ 
$urls[]=$arr[$key][0]['RoomImages']['RoomImage'][0]['url'] 
} 
print_r($urls);//outputs url from each array only once.. in your case two urls 
+0

Спасибо за помощь. Но мне не нужно массировать URL. Но я хочу напечатать их, пропуская остальные. Вы можете видеть ниже: –

+0

'echo urls [0]' и 'urls [1]'. –

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