0

複雑な配列を単純な json オブジェクトに変換したいと思います。配列を json (json_encode) に変換する方法は知っていますが、基本的な配列を次の json 構造に変換する方法が問題です。

配列構造:

配列

Json 出力:

{
    "id": "1",
    "name": "Random Access Memories",
    "tracks": [
        {
            "id": 1,
            "name": "Get Lucky",
            "artists": [
                {
                    "id": 1,
                    "name": "Daft Punk"
                },
                {
                    "id": 2,
                    "name": "Pharrell Williams"
                }
            ]
        },
        {
            "id": 1,
            "name": "Touch",
            "artists": [
                {
                    "id": 1,
                    "name": "Daft Punk"
                }
            ]
        }
    ],
    "album_artists": [
        {
            "id": 1,
            "name": "Daft Punk"
        },
        {
            "id": 2,
            "name": "Pharrell Williams"
        }
    ]
}
4

1 に答える 1

1

これは特に良い方法ではありませんが、OP に表示されている初期配列または画像をループしてトラックの配列を取得し、アルバム名とアルバム ID を使用して json 用に別の配列を作成します。すべてのアルバムとアルバム ID が同じであることを条件に、トラックの最初の要素の

$tracks = array();
$albumArtists = array();
foreach ($yourArrayNotAsAnImage as $track) {
    $tracks[] = $track;
    $albumArtists[] = array("name" => $track['artist_name'], "id" => $track['artist_id']);
}

$daftP = array("name" => $tracks[0]['album'], "id" => $tracks[0]['album_id'], "tracks" => $tracks, "album_artists" => $albumArtists);

echo json_encode($daftP);
于 2013-05-20T15:58:03.057 に答える