2

目的の結果を(ほぼ)得る方法を見つけました。私のコードは、最後の ] の前にコンマを追加するため、うまく機能しません。Json_encode を使用して外部 json から配列を構築できることはわかっていますが、困惑しています。最後のコンマを削除するか、json_encode (迷っている) を使用する必要がありますか?

コード:

元の JSON

[
    {
        "timestamp": 1383609600,
        "localTimestamp": 1383609600,
        "issueTimestamp": 1383609600,
        "fadedRating": 4,
        "solidRating": 0,
        "swell": {
            "minBreakingHeight": 4,
            "absMinBreakingHeight": 3.836,
            "maxBreakingHeight": 6,
            "absMaxBreakingHeight": 5.992,
            "unit": "ft",
            "components": {
                "combined": {
                    "height": 7,
                    "period": 13,
                    "direction": 82.64,
                    "compassDirection": "W"
                },
                "primary": {
                    "height": 7,
                    "period": 13,
                    "direction": 72.94,
                    "compassDirection": "WSW"
                }
            }
        }

]

目的の結果を取得するための PHP

<?php
$url = 'http://magicseaweed.com/api/API_KEY/forecast/?spot_id=1';
$JSON = file_get_contents($url);



$data = json_decode($JSON,true);
    echo "[";


    foreach ($data as $record) {

    echo "[";
        echo "{$record['timestamp']}";
    echo ",";
        echo "{$record['swell']['absMinBreakingHeight']}";
    echo "]";
    echo ",";



    }   
echo "]";
?>

戻り値: 目的の結果から最後のカンマを引いたもの (長さを編集)

[
    [
        1383609600,
        3.836
    ],
    [
        1383620400,
        4.081
    ],
] 

続行する最良の方法は何ですか?

4

3 に答える 3

3

明確な質問なしで答えるリスクがあるので、必要なものの配列を作成してエンコードします。

foreach ($data as $record) {
    $array[] = array($record['timestamp'], $record['swell']['absMinBreakingHeight']);
}
echo json_encode($array); 
于 2013-11-05T18:19:30.003 に答える