0
jsonを作成するためにmutidimentionalオブジェクト/配列構造を再帰しようとしていますが、以下のコードは動作しません。$ dataはリセットされますが、これを防ぐ方法はわかりません。PHP recusion stuck
public function encodeJSON($data)
{
foreach ($data as $key => $value)
{
if(is_array($value)|| is_object($value))
{
$json->$key = $this->encodeJSON($value);
}
else
{
$json->$key = $value;
}
}
return json_encode($json);
}
あなたの思考プロセスは少しオフので、これは実際には有効なJSONを作成しませんされている間、それは再帰を行い、そして '$のdata'がリセットされません。このコードでテスト
。ネストされた配列を含むすべての値を含む1つの文字列を生成します。私はいくつかの配列でそれをテストしました。 –
注釈:個別に値をエンコードすると、正しくないJSONが生成されます。意図した '{" foo ":{" bar ":" baz "}の代わりに' {"foo": "{\" bar \ ":\" baz \ "}"} } '。オブジェクト/配列全体を一度にエンコードする必要があります。 – deceze
@ダン - そうです。私はmike628がここで何をしようとしているのかよく分かりません。 Mike - 'json_encode($ data);の戻り値に何が問題なのですか? json_encode()は配列とオブジェクトを完全に直列化できます! – timdev