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;
}

Lascia un commento