所以我试图遍历似乎是json feed的东西,我使用以下代码来获取所有数组结果,但是,如何返回特定项目,让我们说前6或10?
<?php
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$headers = array('Content-Type: application/json');
$url = 'https://weedmaps.com/api/web/v1/listings/green-valley-medicinal/menu?show_unpublished=false&type=dispensary';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
$menu_data = json_decode($result, true);
foreach($menu_data['categories'] as $menu_item){
foreach ($menu_item['items'] as $item) {
echo '<article class="col-sm-6 col-md-4">';
echo isset($item['image_url']) ? '<img class="media-object menu-item-photo" height="120" width="120" src="'.$item['image_url'].'">' : '<img class="media-object menu-item-photo" height="120" src="images/mmjicon.png">';
echo '<h2>'.$item['name'].'</h2>';
echo '<p>'.$item['body'].'</p>';
echo '</article>';
}
}
?>
非常感谢任何帮助。干杯!
答案 0 :(得分:0)
有多种方法可以做到这一点。
保持foreach循环,添加计数,递增计数,并在达到10时打破循环。
$count = 0;
foreach(...) {
...
if (++$count >= 10) break;
}
答案 1 :(得分:0)
如果您无法控制正在检索的数据数量,您可以使用$ counter来表示您的foreach。
$your_limit = 6;
$counter = 0;
foreach($menu_data['categories'] as $menu_item){
if ( ++$counter > $your_limit ){
break;
}
foreach ($menu_item['items'] as $item) {
echo '<article class="col-sm-6 col-md-4">';
echo isset($item['image_url']) ? '<img class="media-object menu-item-photo" height="120" width="120" src="'.$item['image_url'].'">' : '<img class="media-object menu-item-photo" height="120" src="images/mmjicon.png">';
echo '<h2>'.$item['name'].'</h2>';
echo '<p>'.$item['body'].'</p>';
echo '</article>';
}
}