将复杂的数组结构转换为json

时间:2013-05-20 15:55:03

标签: php arrays json

我想在一个简单的json对象中转换一个复杂的数组。我知道如何将数组转换为json(json_encode)但我的问题是如何将我的基本数组转换为以下json结构。

数组结构:

Array

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"
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

这不是特别好的做法,但是我会循环遍历OP中显示的初始数组或图像,以获取一个轨道数组,然后使用相册名称为json创建一个单独的数组和曲目中第一个元素的专辑ID,提供所有专辑和专辑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);