【发布时间】:2020-12-06 04:29:16
【问题描述】:
当 while 循环满足某些条件时,我正在打印 $row->title,但不幸的是,没有破坏它正在打印所有结果。下面是一个示例,其中第一个 [_id] 与最后一个 [_id] 匹配,因此它必须只打印第一个值 ['title'],即 MarQ,但它同时打印 Marq 和 Jean。
我的数据库是这样的 -
MongoDB\Model\BSONDocument Object
(
[storage:ArrayObject:private] => Array
(
[_id] => MongoDB\BSON\ObjectID Object
(
[oid] => 5fcbd8fbecf357fae06e2264
)
[title] = MarQ,
[age] = 22
)
)
MongoDB\Model\BSONDocument Object
(
[storage:ArrayObject:private] => Array
(
[_id] => MongoDB\BSON\ObjectID Object
(
[oid] => 9s8393hf83959348200d
)
[title] = Bennet,
[age] = 29
)
)
MongoDB\Model\BSONDocument Object
(
[storage:ArrayObject:private] => Array
(
[_id] => MongoDB\BSON\ObjectID Object
(
[oid] => 5fcbd8fbecf357fae06e2264
)
[title] = Jean,
[age] = 20
)
)
我在这里尝试匹配id,如果 id 匹配它只会打印 while 循环中的第一个值。
但在我的代码中,它打印的是所有值,而不仅仅是第一个值。
foreach ($cursor as $row) {
$i = 0;
while ($i < count($row)) {
$id = isset($row[$i]["_id"]);
$j = $i + 1;
while ($j < count($row) && $id == isset($row[$j]["_id"])) {
$r++;
?>
<?php
echo '<br>';
?>
<?php
$j++;
}
$i++;
}
}
(我只能在 while 循环中这样做)。
【问题讨论】:
-
@FSford 在放置
break;后仍然打印是否还有其他方法可以在没有while 循环的情况下使用它?
标签: php mongodb loops while-loop