phpには、カスタムクラスオブジェクトを含む2つの配列があります。1つは$hを使用してwhileループで反復処理し、もう1つは比較のために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++;
}
==比較演算子を===に置き換えても、失敗します。ただし、do-whileループを単純なIFステートメントに置き換えてください。
if ($audits[$i]->id == $audits[$i+1]->id)
{
$i++;
}
ただし、そのコードでは、配列内で複数の重複が発生する可能性はありません。これは、発生する場合と発生しない場合があります。ifステートメントを呼び出す前に$ iを手動でインクリメントする必要があります(前のifステートメントの場合は少なくとも1回インクリメントする必要があります)ステートメントはtrueと評価されます)。
誰かが状況に光を当てることができますか?私は助けに感謝します!
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;
}
}