2016-10-10 15 views
0

をJSONオブジェクトを作成するために、forループを使用して:私のPHPコードは、各反復のための新しいオブジェクトを作成しているがは、私はこのようなJSONオブジェクトを作成しようとしていますPHP

"results": [ 
{"key":"1","trackname":"[email protected]"}, 
{"key":"1","trackname":"[email protected]"}, 
] 

、JSONは次のようになります。

ここで
0: "{"key":"1","trackname":"[email protected]"}" 
1: "{"key":"1","trackname":"[email protected]"}" 

私のPHPです:最終echo

$results = array(); 

function json_response($trackName) { 
return json_encode(array(
    'key' => '1', 
    'trackname' => $trackName 
)); 
} 

//There is 3 reg expressions for each primary array so we need to iterate by 3, otherwise we will get 3 lots of the same email address 
for ($i = 0; $i < $numMatches; $i = $i + $patternNum) { 
    $results[] = json_response($matches[0][$i]); 
} 
//$results = call_user_func_array('array_merge',$results); 
echo json_encode($results); 
+0

あなたの問題は何ですか? – ashkufaraz

答えて

1

あなたはあなたのための作業を行います連想配列または使用の機能をコンパクトに、作成しようとするか、最初のjson_encode関数

を削除する必要があります。

//There is 3 reg expressions for each primary array so we need to iterate by 3, otherwise we will get 3 lots of the same email address 
    for ($i = 0; $i < $numMatches; $i = $i + $patternNum) { 
    $results[] = $matches[0][$i]; // json_encode removed 
} 

echo json_encode(array('results' => $results)); 
// or 
echo json_encode(compact('results')); 
+0

Spot on - ありがとう@リチャード。助けてくれてありがとう – rhysclay

1

あなたはJSONで既にエンコードされた配列をコードします。

json_encodejson_response機能から削除します。

関連する問題