限制要处理的JSON对象的数量

时间:2013-06-06 19:04:48

标签: php arrays object json

<?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;不起作用? :)

3 个答案:

答案 0 :(得分:3)

更简洁的解决方案是使用:

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

它可以节省你创建一个变量来计算:)

答案 1 :(得分:0)

您忘了增加$i。现在它遍历整个数组,每次检查$i是否总是0,等于五。

改为写:

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

$i为5之前计算。

答案 2 :(得分:0)

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