Pagina 1 di 1

[php] Alternative ad array_unique

Inviato: mer 9 gen 2008, 14:29
da aschenaz
Usando array_unique, sono caduto nella piccola trappola degli indici mantenuti come nell'array originale.

Avendo l'esigenza di azzerare gli indici, non esiste una funzione alternativa?

Seguendo un esempio del manuale, ho aggirato l'ostacolo ricorrendo all'azione combinata di array_keys e array_flip: funziona, ma non mi sembra molto elegante come soluzione... :roll:

Ancora meno elegante potrebbe essere quella di lanciare un foreach e creare un'array ex novo...

Comunque, forse mi spiego meglio con un esempio:

Codice: Seleziona tutto

<?php 

$originale=array("miao","miao","miao","bau");

$prova1=array_unique($originale);
print_r($prova1);
// restituisce Array ( [0] => miao [3] => bau )

$prova2=array_keys(array_flip($originale));
print_r($prova2);
// restituisce Array ( [0] => miao [1] => bau )

?>

Re: [php] Alternative ad array_unique

Inviato: mer 9 gen 2008, 16:29
da nuitari
personalmente uso la forma: array_merge(array_unique($originale), array())

Re: [php] Alternative ad array_unique

Inviato: mer 9 gen 2008, 21:24
da aschenaz
nuitari ha scritto:personalmente uso la forma: array_merge(array_unique($originale), array())
Anche questo mi sembra un buon work-around.

Quindi una funzione specifica non esiste...

Re: [php] Alternative ad array_unique

Inviato: mer 9 gen 2008, 21:49
da nuitari
No non esiste. Il fatto è che il mio work-around funziona anche con gli array multidimensionali, ed inoltre non è un *hack* propriamente, in quanto array_merge senza array non fa molto altro che riordinare gli indici.