2015-06-14 21 views
-2

我有多個字符串,如下所示:11-1616-1214-16轉換多個字符串成JSON數組

我將這些多,我需要將它們存儲在JSON。我需要將其存儲在以下格式:

[ 
    { 
    "score_1": 11, 
    "score_2": 16 
    }, 
    { 
    "score_1": 16, 
    "score_2": 12 
    }, 
    { 
    "score_1": 14, 
    "score_2": 16 
    } 
] 

score_1是第一號和score_2是第二個數字。我將如何能夠在PHP中執行此操作?

由於

回答

2

首先創建一個數組。接下來創建一個對象,然後explode連字符上的字符串並將intval的第一個和第二個數字存儲在對象中。將該對象推入你的數組中。重複儘可能多的字符串。最後,使用json_encode獲取JSON編碼的字符串。

$arr = []; 

function addString($str, &$arr) { 
    $str = explode("-", $str); 
    $obj = new stdClass(); 
    $obj->score_1 = intval($str[0]); 
    $obj->score_2 = intval($str[1]); 
    $arr[] = $obj; 
} 

addString("11-16", $arr); 
addString("16-12", $arr); 

echo json_encode($arr); 

輸出:

[{ 「score_1」:11 「score_2」:16},{ 「score_1」:16, 「score_2」:12}]


編輯:更新了上面的代碼使用intval作爲OP具有整數在他的預期輸出對象。

+2

如果您已經完成作業,還將缺少的轉換添加到整數中。 –

+0

謝謝!這正是我所需要的。 – cheese5505

+1

@UlrichEckhardt好眼睛。我已經更新了正確轉換爲整數的答案 – Drakes

2

兩個步驟:

  1. 轉換字符串到根據數據結構(例如stdClass的對象的陣列)。
  2. 將該數據結構轉換爲JSON。

注意:由於您已經知道您想要的輸出,因此您可以解析該輸出以瞭解其在PHP中的表示形式,以此作爲第一步結果的建議。