質問: $pdo->query($sql); foreach($result as $row){ echo $row['id'].': '; echo $row['comment'].' '; echo $row['ido'].' '; echo $row['keido'].'<><>'; //json形式に変換 $phpjson=json_encode($row['ido']); //全てきちんと表示された(緯度:12.1234,56.7890など) echo $phpjson.''; } ?> ```
回答: > > 配列をすべて取得したいが取得できるのは最新投稿の > > > 最新投稿になるのは、m6u様のおっしゃる、上書きのせいです > > $phpjson=json_encode($row['ido']); > > > のところを > > $latitudes[] = $row['ido']; > > > として、foreachの閉じカッコのあとで、`$phpjson = json_encode($latitudes);`などとする必要があります。 > > 例えば緯度:12.345と投稿した場合取得されるのは[1,2,.,3,4,5]など > > 最新投稿の1文字ずつが取得される > > > ここのところですが、実際に[1,2,.,3,4,5]となりますか? console.log(test[i])の結果だと思うのですが > > 1 > > 2 > > . > > 3 > > 4 > > 5 > > log出力 > > > ではないですか? おそらく、$row['ido']は"12.345"が数値か文字列で入っていると期待しますので、 `$phpjson = json_encode("12.345");`の結果、$phpjsonは`"12.345"`ですし、JSON.Parse($phpjson)も、`12.345`です。これをforで取り出すと↑のような結果となると想像します。 繰り返しになりますがforeachの中で$phpjsonを作ると、$row['ido']の単一の値だけが上書きになり、配列にならないので、こういう動きになります。