/ / Durch ein Array Iterieren und die ersten 10 Ergebnisse zurückgeben - php, json, for-loop, curl, foreach

Durch ein Array Iterieren und die ersten 10 Ergebnisse zurückgeben - php, json, for-loop, curl, foreach

Also ich versuche, durch, was scheint, JSON-Feed zu durchlaufen, verwende ich den folgenden Code, um alle Array-Ergebnisse zu erhalten, jedoch, wie gebe ich bestimmte Elemente, sagen wir die ersten 6 oder 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="/images/".$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>";
}
}
?>

Jede Hilfe würde sehr geschätzt werden. Prost!

Antworten:

0 für die Antwort № 1

Es gibt eine Vielzahl von Möglichkeiten, dies zu tun.

Halten Sie Ihre foreach-Schleife, fügen Sie eine Zählung hinzu, inkrementieren Sie sie und brechen Sie die Schleife ab, sobald sie 10 erreicht.

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

0 für die Antwort № 2

Wenn Sie nicht die Kontrolle über die Anzahl der Daten haben, die abgerufen werden, können Sie einen $ -Zähler für Ihre Foreach verwenden.

$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="/images/".$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>";
}
}