需要在foreach php中仅回显关联数组的第一个元素

时间:2017-01-16 06:51:16

标签: php arrays

我有一个很长的关联数组,但我在这里展示了一小部分:

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是上面的数组。在此示例中,foreach您可以看到它正在为每个元素打印该图像。所以我想跳过其他元素,只打印第一个。

1 个答案:

答案 0 :(得分: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

或按如下方式制作网址数组:

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