0

我正在访问一个提供 json 结果的搜索 API,例如:免费搜索 API

我只想将对象中的记录title、、kwic和检索到我的代码中。但是对象中的and阻碍了。urlresultstitleurlrelated

我试过做一些 if 函数:

foreach ($json->results as $item) {
if (isset($item->kwic)) {
    $rss_item = array(
        'title' => $item->title,
        'kwic' => $item->kwic,
        'url' => $item->url,
    );
    array_push($desArray, $item->kwic);
}

else {
    return false;
}
array_push($rss_array, $rss_item);

for ($i = 0; $i < 50; $i++) {
echo '<a href="' . $rss_array[$i]['url'] . '">' . $rss_array[$i]['title'] . '</a><a href="' . $rss_array [$i]['url'] . '" target="_blank">' . '<img src="http://corrupteddevelopment.com/wp-content/uploads/2012/10/open-new-tab-window-icon.jpg" width="15px" height="15px"></a><br/>';//LINE 66
echo '<hr/>';
echo '<p>' . $rss_array [$i]['kwic'] . '</p></br>';
}

它给了我部分结果,部分给了我:Notice: Undefined offset: 31 in C:\xampp\htdocs\MSP\SignIn\cariFree.php on line 66。当我写道:

if (isset($item->related)) {
return false}

它给了我完全空白的页面。我错过了什么?谢谢你。

这是完整代码的屏幕截图:mycode.php

4

1 回答 1

0

我稍微改写了你的代码,我认为这是你实际上应该做的,但我不确定,因为我没有完整的代码,也不真正理解你的问题是什么(除了糟糕的编码)。

<?php

//first off use arrays instead of objects:
$json = json_decode($data, true);

foreach ( $json['results'] as $item ) {
    if ( isset($item['kwic']) ) {
        //we can push $item into the rss_array directly
        array_push($rss_array, $item); #I assume you want this here instead of outside the loop
    }
    //I removed the else since it seemed completly stupid
}

foreach ( $rss_array as $item ) {
    echo '<a href="' . $item['url'] . '">' . $item['title'] . '</a><a href="' . $item['url'] . '" target="_blank">' . '<img src="http://corrupteddevelopment.com/wp-content/uploads/2012/10/open-new-tab-window-icon.jpg" width="15px" height="15px"></a><br/>';//LINE 66
    echo '<hr/>';
    echo '<p>' . $item['kwic'] . '</p></br>';
}
于 2013-06-23T16:44:18.113 回答