我在 php 中有两个包含自定义类对象的数组。一个我使用 $h 在 while 循环中迭代,另一个我通过 while 循环内的另一个变量 $i 访问以进行比较。如果满足某个条件,我只会在父循环中增加 $i ,并且数组中可能存在同一对象的多个副本,我需要跳过这些副本。
我的代码如下所示:
$h = 0;
$i = 0
$j = 10; // Number determined elsewhere but statically entered for example purposes
while ($h < $j)
{
if ($audits[$i]->id == $auditIDs[$h])
{
// Do Stuff...
do
{
$i++;
} while ($audits[$i]->id == $audits[$i+1]->id);
}
else
{
// Do stuff...
}
$h++;
}
如果我用 === 替换 == 比较运算符,它仍然会失败。但是,用一个简单的 IF 语句替换 do-while 循环是可行的。
if ($audits[$i]->id == $audits[$i+1]->id)
{
$i++;
}
但是该代码不允许数组中存在多个重复项,这可能会发生也可能不会发生,并且我必须在调用 if 语句之前手动增加 $i (如果前一个 if 必须至少增加一次)语句评估为真)。
任何人都可以对这种情况有所了解吗?感谢您的帮助!
class auditItem
{
public $login;
public $points;
public $date;
public $onTime;
public $name;
public $id;
public $msg;
function auditItem($login, $points, $date, $name, $id, $msg)
{
$this->login = $login;
$this->points = $points;
$this->date = $date;
$this->name = $name;
$this->id = $id;
$this->msg = $msg;
}
}