奇妙な出力を生成したステートメントは
$response = '{"17366":{"title":"title1","content":"content1"},"22747":{"title":"title2","content":"content2"}}';
$result = json_decode($response, true);
foreach ($result as $document => $details) {
echo "Title : {$details['title']}, ";
echo "content : {$details['content']} ";
echo '<br>';
}
//prints, this one ok
//Title : title1, content : content1
//Title : title2, content : content2
しかし、もし
$response = '{"title":"title1"}';
$result = json_decode($response, true);
foreach ($result as $document => $details) {
echo "Title : {$details['title']}, ";
echo "content : {$details['content']} ";
echo '<br>';
}
//prints
//Title : t, content : t
この場合、$details
は配列ではなく、そのようなキーが含まれていないことがわかっています。そうであれば、例外またはエラーが発生するはずです。ただし、両方の文字列の最初の文字のみを出力します。
誰でも私が間違っていることを指摘してください。またはそれは動作であり、私は何かを主張できませんでしたか?