2013-05-20 43 views
0

我想轉換簡單的json對象中的複雜數組。我知道如何將數組轉換爲json(json_encode),但我的問題是我如何將我的基本數組轉換爲以下json結構。將複雜的數組結構轉換爲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" 
     } 
    ] 
} 
+7

這看起來不像數組,它看起來像一個圖像。 – nickb

+0

http://php.net/manual/en/function.json-decode.php檢查這個鏈接..它會幫助你! – TomPHP

+0

http://stackoverflow.com/questions/4328515/convert-php-array-to-json-tree – TomPHP

回答

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);