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