0

次のようなjson結果を提供する検索APIにアクセスしています: Free Search API

オブジェクト内のレコードtitlekwic、およびのみをコードに取得したいと考えています。しかし、オブジェクトのとが邪魔をしています。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 に答える