Repository 32bit  Forum
Repository 64bit  Wiki

[php] Alternative ad array_unique

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[php] Alternative ad array_unique

Messaggioda aschenaz » mer gen 09, 2008 14:29

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 )

?>
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4433
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: [php] Alternative ad array_unique

Messaggioda nuitari » mer gen 09, 2008 16:29

personalmente uso la forma: array_merge(array_unique($originale), array())
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: [php] Alternative ad array_unique

Messaggioda aschenaz » mer gen 09, 2008 21:24

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...
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4433
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: [php] Alternative ad array_unique

Messaggioda nuitari » mer gen 09, 2008 21:49

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.
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron