2016-09-15 61 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>'; 
     } 
    }