【问题标题】:Iterating through an array and returning first 10 results遍历数组并返回前 10 个结果
【发布时间】:2016-09-15 06:30:53
【问题描述】:

所以我试图遍历似乎是 json 提要的内容,我正在使用以下代码来获取所有数组结果,但是,我如何返回特定项目,比如前 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>';
      }
    }
    ?>

任何帮助将不胜感激。干杯!

【问题讨论】:

    标签: php json for-loop curl foreach


    【解决方案1】:

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

    保持你的 foreach 循环,添加一个计数,增加它,并在达到 10 时中断循环。

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

    【讨论】:

    • @AymenYaseen 很高兴我能提供帮助。请标记正确答案以表明问题已解决。
    【解决方案2】:

    如果您无法控制正在检索的数据数量,您可以在 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>';
          }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多