2016-09-15 95 views
0

所以我想通过似乎是json feed迭代,我使用下面的代码来获取所有数组结果,但是,如何返回特定项,让我们说前6或10?迭代通过一个数组并返回前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

有多种方法可以做到这一点。

保持你的foreach循环,增加一个数,增加它,一旦达到10

$count = 0; 
foreach(...) { 
    ... 
    if (++$count >= 10) break; 
} 
+0

@AymenYaseen很高兴我能帮到你。请标记正确的答案以证明已解决。 – Devon

0

打破循环,如果你没有在被检索的数据的数量控制,你可以使用给你的foreach一个$ counter。

$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>'; 
     } 
    }