Pochi sanno che in php esistono alcune funzioni che agevolano notevolmente la programmazione di funzioni di controllo, sostituzione o controllo.
In questi ultimi tempi mi capita spesso di scordarmi delle potenzialità nascoste del php mi rimetto a programmare funzioni di differenza tra array multidimensionali, quando invece esiste una funzione simpaticissima che elimina tutti i valori ripetuti dagli array ad una dimensione array_unique($array).
Vediamo un po’ come la possiamo utilizzare per creare una funzione che ci permetta di eliminare i valori duplicati in un array multidimensionale.
Partendo da un array come questo:
Array (
[0] => Array ( [0] => 883 [1] => Emanuele [2] => Giugliacci)
[1] => Array ( [0] => 127 [1] => prova [2] => test )
[2] => Array ( [0] => 883 [1] => Emanuele [2] => Giugliacci)
[3] => Array ( [0] => 883 [1] => Giugliacci[2] => Emanuele )
[4] => Array ( [0] => 883 [1] => Emanuele [2] => Giugliacci)
)
Sapendo che la funzione array_map($array) esegue un callback, (una chiamata ad una altra funzione), alla quale passa uno ad uno i valori dell’array …
function uniqueM($array)
{
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($result as $a=> $val)
{
if ( is_array($val) )
$result[$a] = super_unique($val);
}
return $result;
}