次のコードがあります。
var_dump($cursor);
foreach($cursor as $obj) {
echo "<div class='item' id='" . $obj['_id'] . "'>";
echo "<span class='listnick'>" . $obj['nick'] . "</span>";
echo "</div>";
}
var_dump の結果は次のとおりです。
array(2) {
[0]=>
&array(9) {
["_id"]=>
object(MongoId)#9 (1) {
["$id"]=>
string(24) "50af8dcd9cc231534400000c"
}
["nick"]=>
string(6) "safari"
}
[1]=>
array(9) {
["_id"]=>
object(MongoId)#8 (1) {
["$id"]=>
string(24) "50af8dca9cc2315644000009"
}
["nick"]=>
string(6) "chrome"
}
}
したがって、明らかに foreach は「safari」と「chrome」を出力するはずですが、問題は本当に奇妙です。
「safari」を 2 回返し、「chrome」を省略したり、他のクライアントではその逆を行ったりすることがあります。var_dump と foreach ループを近くに置いて、それらが同じであり、2 つのコマンド間でオブジェクトに変更がないことを確認しようとしましたが、実際に何が起こっているのかわかりませんでした。
何か助けはありますか?前もって感謝します。