Ho una collezione che voglio ripetere e modificare mentre recupero alcuni dei suoi elementi. Ma non sono riuscito a trovare un modo o un metodo per rimuovere quell'elemento recuperato.Come rimuovere (rimuovere) un elemento di raccolta dopo averlo recuperato?
$selected = [];
foreach ($collection as $key => $value) {
if ($collection->selected == true) {
$selected[] = $value;
unset($value);
}
}
Questa è solo una rappresentazione della mia domanda per dimostrazione.
Dopo che @Ohgodwhy ha inoltrato la funzione forget(), l'ho controllato di nuovo e ho visto che in realtà avevo frainteso la funzione. Era esattamente quello che stavo cercando. Dopo aver aggiunto "$ collection-> forget ($ key)" all'interno dell'istruzione if come la demo di seguito, ha funzionato.
$selected = [];
foreach ($collection as $key => $value) {
if ($collection->selected == true) {
$selected[] = $value;
$collection->forget($key);
}
}
(questo è solo una dimostrazione)
io suggerirei di non memorizzare le voci in un array, ma creare una nuova collezione e l'aggiunta di elementi ad esso attraverso spinta. – Amarnasan
@Amarnasan Come andrebbe su quello? Non ne ho bisogno in questo momento, ma penso che potrei averne bisogno in futuro –