Vediamo come rimuovere tutti gli elementi, con uno specifico valore e chiave, da un array in PHP.
Immaginiamo di avere un array, contenente informazioni su alcune automobili, e di voler eliminare tutti gli elementi che contengono uno specifico valore per una specifica chiave.
Esempio: vogliamo eliminare tutte le auto che hanno come proprietà la chiave “COLORE” e come attributo il valore “BIANCO”
//Inizializziamo il nostro array
$automobili = array(
array (
"modello" => "Opel Corsa",
"colore" => "Bianco",
),
array (
"modello" => "Fiat Punto",
"colore" => "Bianco",
),
array (
"modello" => "Ferrari F40",
"colore" => "Rosso",
),
array (
"modello" => "Mercedes Classe A",
"colore" => "Grigio",
),
array (
"modello" => "Mercedes Classe A",
"colore" => "Nero",
),
);
//Stampiamo tutti gli elementi dell'array
print_r($automobili);
//Esegiuamo la funzione per rimuovere tutti gli elementi che contengono il valore Bianco nella "Proprietà Colore"
$automobili = array_remove_elements_with_key_and_value($automobili, "colore", "Bianco");
//Ri-stampiamo tutti gli elementi dell'array
print_r($automobili);
//Funzione per rimuovere tutti gli elementi che contengono uno specifico valore
function array_remove_elements_with_key_and_value($array, $key, $value){
foreach($array as $_key => $values){
if($values[$key] == $value){
unset($array[$_key]);
}
}
return $array;
}
In questa maniera otterremo come risultato tutti gli elementi presenti nell’array tranne le auto di colore bianco.
La funzione che ci permette di eliminare gli elementi di un array è la seguente:
//Funzione per rimuovere tutti gli elementi che contengono uno specifico valore in una proprietù indicata
function array_remove_elements_with_key_and_value($array, $key, $value){
foreach($array as $_key => $values){
if($values[$key] == $value){
unset($array[$_key]);
}
}
return $array;
}