Ciao a tutti. Ho il seguente problema: in un ciclo foreach devo ciclare tra gli elementi della variabile links, trovare gli elementi che abbiano l'id ritornato dalla funzione $serviceToDelete->getId(), e quindi cancellarli da links. Quando provo la funzione, il mio programma, ho il seguente notice:
ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in C:blablabla (la riga del foreach)
Come faccio a sistemarlo? Se non ho capito male è perchè gli indici dell'array sono stati modificati, ma la funzione unset non dovrebbe lasciare gli indici inalterati?
Questo è il ciclo.

Codice PHP:
$i=0;
        foreach(
$this->links as $link) {
            if(
$link->getSource() == $serviceToDelete->getId()){
                
$targets->append($link->getTarget());
                unset(
$this->links[$i]);}
            
$i++;} 

Grazie mille e ciao! =D