2014-10-16 41 views
0

我正在從MySQL中的字段中提取數據。該字段從API中以串行化字符串的形式提取圖像。 API將以下數據提供給MySQL中的「圖像」列。將數組中的序列化數據轉換爲php中的字符串

a:2:{i:0;s:87:"http://url/image.jpg";i:1;s:85:"http://url/image2.jpg";} 

如果print json_encode($result, JSON_NUMERIC_CHECK)我得到的輸出:

[ 
{ 
    "title":"Product 1", 
    "images":"a:2{i:0;s:87:\"http://url/image1.jpg";i:1;s:85:\"http://url/image2.jpg";}" 
} 
] 

我試圖找回只是

[ 
{ 
    "title":"Product 2", 
    "images":[ 
    "http://url/image1.jpg", 
    "http://url/image2.jpg" 
    ] 
} 
] 

我不知道如何反序列化「圖像」鍵入分離的通用列表。我嘗試過不同形式的unserialize()函數,沒有骰子。 任何幫助表示讚賞!

感謝

回答

0

使用unserialize()功能:

$ary = json_decode($json); 


for($i=0; $i < count($ary['images']); $i++){ 
    $ary['images'][$i] = unserialize($ary['images'][$i]); 
} 


$obj = json_encode($ary); 
0

你的字符串表示一個數組,在序列化形式。您需要先將其反序列化。問題是您的字符串,如所提供的,不是有效的序列化數據。它看起來像它應該下定決心,

$images = array("http://url/image1.jpg", "http://url/image2.jpg"); 

要得到你想要的輸出,你需要一個數組,看起來像這樣

$data = array(
    'title' => 'Product 1', 
    'images' => $images 
); 
echo json_encode($data); 
+0

這是有道理的。我將如何去訪問'圖像'鍵中的數據,以便我可以將它變成一個$ images數組? – James 2014-10-16 17:49:17

+0

通常你會'反序列化'('你的序列化數據');'但你的問題中的字符串不會反序列化 – Machavity 2014-10-16 17:50:52

相關問題