2015-01-09 138 views
-5

我在找一個數組值轉換爲json_encode格式,但讀功能json_encode我找不到一個選項,以得到這樣的結果:如何從PHP創建一個JSON字符串數組數據

{ 
    "image1":{"filename":"image1.jpg","alt":"","caption":""}, 
    "image2":{"image2.jpg","alt":"","caption":""} 
} 

我的數組是:

$prod['images'] = 'image1.jpg,image2.jpg'; 

$images = explode(',', $prod['images']); 

    foreach($images as $img){ 
     $get_path = pathinfo($img); 
     $path = $get_path['basename']; 

     $images_array[] = array(
           $path => array('filename' => $img, 'alt' => '', 'caption' => '') 

          ); 
    } 

    $final_images = json_encode($images_array); 

和我的問題是怎樣才能轉換成JSON這樣的:

{ 
    "image1":{"filename":"image1.jpg","alt":"","caption":""}, 
    "image2":{"image2.jpg","alt":"","caption":""} 
} 

解決了與:

$images_array[$path] = array('filename' => $img, 'alt' => '', 'caption' => ''); 
+3

好吧,顯然你必須添加缺少的字段(因此創建一個多維數組) – kero 2015-01-09 20:11:15

+4

你需要建立一個匹配該結構的數組...然後'json_encode'它。循環訪問'$ images'並使用正確的鍵/值構建另一個數組。 – 2015-01-09 20:11:18

+0

此外,我認爲它應該是'「文件名」:「image2.jpg」'? – 2015-01-09 20:11:56

回答

1

您正確構建$images_array你的循環中。它應該是:

$images_array[$path] = array('filename' => $img, 'alt' => '', 'caption' => ''); 

注意:確保在循環外聲明$images_array = array();