我想在一个简单的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"
}
]
}
答案 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);