foreach ($big_response as $data) {
$comment_data[comment][name] = $data->name;
$comment_data[comment][date] = $data->createdAt;
$comment_data[comment][message] = $data->message;
}
上記は、コメント配列を1回だけ出力しますが、$ big_responseのすべての値に対して出力するわけではありません。
array(2) { [0]=> array(0) { } ["comment"]=> array(3) { ["name"]=> NULL ["date"]=> string(19) "2013-01-07T08:56:23" ["message"]=> string(45) "HELLO WORLD" } }
次のように構造化された配列を出力しようとしています。
Array
(
[comment] => Array
(
[name] => Tom
[date] => 12/12/12
[message] => Hello World
)
[comment] => Array
(
[name] => Andy
[date] => 12/12/14
[message] => Hello World2
)
[comment] => Array
(
[name] => Peter
[date] => 12/12/13
[message] => Hello World3
)
)
すべての値は文字列タイプです。実際、結果の配列をjson_encode(ing)した後、jsonファイルに保存したいと思います。
私はどこに欠けていますか?詳細を教えていただければお知らせください。
これに伴う問題は、基本的に$comment_data[comment]…
各ループで上書きしているだけです。
foreach ($big_response as $data) {
$comment_data[comment][name] = $data->name;
$comment_data[comment][date] = $data->createdAt;
$comment_data[comment][message] = $data->message;
}
また、同じキー値を持つ複数のキーを持つことができるため、この配列の結果は発生しませんcomment
。
Array
(
[comment] => Array
(
[name] => Tom
[date] => 12/12/12
[message] => Hello World
)
[comment] => Array
(
[name] => Andy
[date] => 12/12/14
[message] => Hello World2
)
[comment] => Array
(
[name] => Peter
[date] => 12/12/13
[message] => Hello World3
)
)
ループを実行するときにkey
、代わりに$big_response
配列の値を使用してこれを試してくださいforeach
。
foreach ($big_response as $data_key => $data_value) {
$comment_data[$data_key][comment][name] = $data->name;
$comment_data[$data_key][comment][date] = $data->createdAt;
$comment_data[$data_key][comment][message] = $data->message;
}
これの出力は次のようになります。
Array (
[0] => Array (
[comment] => Array (
[name] => Tom
[date] => 12/12/12
[message] => Hello World
)
)
[1] => Array (
[comment] => Array (
[name] => Andy
[date] => 12/12/14
[message] => Hello World2
)
)
[2] => Array (
[comment] => Array (
[name] => Peter
[date] => 12/12/13
[message] => Hello World3
)
)
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加