5

私は長い間初めてjsonとphpを使用してきましたが、2つに関して壁にぶつかりました。

jsonフィードを含むjavascriptファイルを作成し、phpを使用して正常にデコードし、データにアクセスできるようになりました(一度に1つのアイテム)が、それを反復してリストアイテムを吐き出そうとすると思わぬ障害が発生しますすべてのデータを使用しています。

これについての助けをいただければ幸いです。

josn は次のようになります。

{
    "data": [
        {
            "name": "name1",
            "alt": "name one",
            "imgUrl": "img/icons/face1.png",
            "linkUrl": "linkurl"
        },
        {
            "name": "name2",
            "alt": "name two",
            "imgUrl": "img/icons/face2.png",
            "linkUrl": "linkurl"
        }
    ]
}

そしてphp:

<?php
$json_url = "js/tiles/jsonfeed.js";
$json = file_get_contents($json_url);
$links = json_decode($json, TRUE);
?>
<ul>
    <li>
    <a href="<?php echo $links['data'][1]['linkUrl'] ?>"><img scr="<?php echo $links['data'][1]['imgUrl']; ?>" alt="<?php echo $links['data'][1]['alt']; ?>" class="share-icon" /></a>
    </li>
</ul>

明らかに、これは 2 番目の配列スロットの情報のみを取得します。php に出入りすることなく、リスト項目を書き込むより効率的な方法があることを認識しており、それはまもなくクリーンアップされます。

私が抱えている問題は、これを foreach ループでラップして、json フィードの各項目のリスト項目を吐き出そうとしていることです。json が初めてで、しばらくの間 php に触れていないため、ループを適切にフォーマットして適切なデータを取得するのに苦労しています。

誰かがこれを適切に機能させるのを手伝ってくれませんか?

ありがとう

4

3 に答える 3

7

データを foreach してから、各子を順番に操作するだけです。

foreach ($links['data'] AS $d){
    echo $d['linkUrl'];
}
于 2012-06-28T15:37:22.323 に答える
4

これは仕事をするはずです:

<?php
$json_url = "js/tiles/jsonfeed.js";
$json = file_get_contents($json_url);
$links = json_decode($json, TRUE);
?>
<ul>
<?php
    foreach($links['data'] as $key=>$val){ 
?>
    <li>
    <a href="<?php echo $val['linkUrl'] ?>">
        <img scr="<?php echo $val['imgUrl']; ?>" alt="<?php echo $val['alt']; ?>" class="share-icon" />
    </a>
    </li>
<?php
    }
?>
</ul>
于 2012-06-28T15:37:42.540 に答える
1

foreach ループは$links['data']、たとえば次のように反復する必要があります。

foreach($links['data'] as $item) {
    echo $item['linkUrl'];
}
于 2012-06-28T15:37:41.387 に答える