Questa domanda ha diverse risposte ma voglio aggiungere qualcosa di più perché quando ho usato unset
o array_diff
ho avuto diversi problemi a giocare con gli indici del nuovo array quando l'elemento specifico è stato rimosso (perché l'indice iniziale viene salvato)
Torno all'esempio:
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
$array_without_strawberries = array_diff($array, array('strawberry'));
o
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
unset($array[array_search('strawberry', $array)]);
Se stampi il risultato otterrai:
foreach ($array_without_strawberries as $data) {
print_r($data);
}
Risultato:
> apple
> orange
> blueberry
> kiwi
Ma gli indici verranno salvati e quindi avrai accesso al tuo elemento come:
$array_without_strawberries[0] > apple
$array_without_strawberries[1] > orange
$array_without_strawberries[3] > blueberry
$array_without_strawberries[4] > kiwi
Quindi l'array finale non viene reindicizzato. Quindi è necessario aggiungere dopo il unset
o array_diff
:
$array_without_strawberries = array_values($array);
Successivamente l'array avrà un indice normale:
$array_without_strawberries[0] > apple
$array_without_strawberries[1] > orange
$array_without_strawberries[2] > blueberry
$array_without_strawberries[3] > kiwi
In relazione a questo post: Re-Index Array
Spero che possa essere d'aiuto