Ich habe eine Sammlung, die ich iterieren und ändern möchte, während ich einige ihrer Elemente abrufe. Aber ich konnte keinen Weg oder keine Methode finden, um dieses abgerufene Element zu entfernen.
$selected = [];
foreach ($collection as $key => $value) {
if ($collection->selected == true) {
$selected[] = $value;
unset($value);
}
}
Dies ist nur eine Darstellung meiner Demonstrationsfrage.
Nach dem Rat von @Ohgodwhy der Funktion compare () habe ich sie erneut überprüft und festgestellt, dass ich die Funktion tatsächlich falsch verstanden habe. Es war genau so, wie ich es gesucht hatte.
Für eine funktionierende Lösung habe ich also $collection->forget($key)
die if-Anweisung hinzugefügt .
Unten ist die funktionierende Lösung meines Problems unter Verwendung der Lösung von @ Ohgodwhy:
$selected = [];
foreach ($collection as $key => $value) {
if ($collection->selected == true) {
$selected[] = $value;
$collection->forget($key);
}
}
(Dies ist nur eine Demonstration)