我有一个很长的关联数组,但我在这里展示了一小部分:
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您可以看到它正在为每个元素打印该图像。所以我想跳过其他元素,只打印第一个。
答案 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