1
<?php
// JSON URL which should be requested
$json_url = 'https://api.feedbin.me/v2/entries.json';

$username = 'username';  // authentication
$password = 'password';  // authentication

// Initializing curl
$ch = curl_init( $json_url );

// Configuring curl options
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => $username . ":" . $password   // authentication
);

// Setting curl options
curl_setopt_array( $ch, $options );

// Getting results
$result =  curl_exec($ch); // Getting JSON result string

    $i=0;
    foreach (json_decode($result) as $obj) {
    if($i==5) break;
        $feedbin_title = $obj->title;
        $feedbin_url = $obj->url;
        echo '<li><a href="', $feedbin_url, '">', $feedbin_title, '</a></li>';
    }
?>

我得到一个 100 个对象的 JSON 结果。我试图将处理的对象限制为前 5 个。为什么这不起作用$i=0; if($i==5) break;?:)

4

3 回答 3

4

一个更整洁的解决方案是使用:

foreach (array_slice(json_decode($result), 0, 5) as $obj) {

它会节省您创建一个变量来计数:)

于 2013-06-06T19:09:28.413 回答
0

你忘了递增$i。现在它遍历整个数组,每次检查是否$i(始终为 0)等于 5。

改为:

if($i++ == 5) break;

直到$i是5。

于 2013-06-06T19:06:35.670 回答
0

您没有更改$i值,请尝试$i++foreach()循环中添加...尝试foreach(json_decode($result) as $i => $obj)

于 2013-06-06T19:06:52.823 回答