Forum - PHP
- Problema con duplicati in array
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
Salve ragazzi, mi trovo in una situazione del genere: devo estrarre delle stringhe dal campo filter attraverso una lettura query. Ogni stringa č cosė strutturata str1, str2, str3, ecc.... A questo punto applico explode:
Codice sorgente - presumibilmente Plain Text
for($i=0; $i<n; $i++){
$explode = array_push($array, explode(',', $filter[$i]['filter']));
}
generando un array cosė strutturato:
Codice sorgente - presumibilmente Delphi
Array
(
[ 0] = > Array
(
[ 0] = > Dubai
)
[ 1] = > Array
(
[ 0] = > Dolomiti
[ 1] = > San Martino di Castrozza
)
[ 2] = > Array
(
[ 0] = > Cuba
[ 1] = > Cayo Largo
)
[ 3] = > Array
(
[ 0] = > Salento
[ 1] = > Torre San Giovanni
)
[ 4] = > Array
(
[ 0] = > Capo Verde
)
[ 5] = > Array
(
[ 0] = > Barcellona
[ 1] = > Marsiglia
[ 2] = > Savona
)
[ 6] = > Array
(
[ 0] = > Polignano
[ 1] = > Pezze di Greco
)
[ 7] = > Array
(
[ 0] = > Sofia
)
[ 8] = > Array
(
[ 0] = > New York
[ 1] = > Los Angeles
[ 2] = > Washington
[ 3] = > Philadelphia
[ 4] = > Las Vegas
)
[ 9] = > Array
(
[ 0] = > Ischia
)
[ 10] = > Array
(
[ 0] = > Lecce
)
[ 11] = > Array
(
[ 0] = > Salento
[ 1] = > Torre San Giovanni ( Le)
[ 2] = > Marina di Ugento ( Le)
)
[ 12] = > Array
(
[ 0 ] = > Salento
[ 1 ] = > Corigliano d\'Otranto (Le)
[2] => Otranto (Le)
)
[13] => Array
(
[0] => Canarie
[1] => Tenerife
[2] => Fuerteventura
)
[14] => Array
(
[0] => Gargano
[1] => Monte Sant\' Angelo ( Fg)
)
[ 15] = > Array
(
[ 0] = > Salento
[ 1] = > Ostuni ( Br)
)
[ 16] = > Array
(
[ 0 ] = > Medjougorie
[ 1 ] = > Croazia
)
)
Avrei bisogno di eliminare i duplicati e ordinarlo in ASC. Come posso fare? In rete ho trovato delle soluzioni del tipo:
Codice sorgente - presumibilmente Plain Text
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
Ma senza alcun esito. Come posso fare?
Grazie
Ultima modifica effettuata da giocala88 il 23/12/2015 alle 2:50
Olekirk91 (Normal User)
Newbie
Messaggi: 4
Iscritto: 16/01/2014
Ciao,
spero di aver ben interpretato la tua domanda.
Se non ti interessa mantenere multidimensionale il tuo array puoi fare una cosa di questo genere:
convertire il tuo array in un array semplice :
Codice sorgente - presumibilmente Php
$input = array_flatten( $array ) ;
function array_flatten( $array ) {
return FALSE ;
}
foreach ( $array as $key => $value ) {
}
else {
$result [ $key ] = $value ;
}
}
return $result ;
}
dopo di che eliminare i doppi:
Codice sorgente - presumibilmente Plain Text
$input=array_unique($input, SORT_REGULAR);
e ordinarlo:
Codice sorgente - presumibilmente Plain Text
Spero di esserti stato utile,
Buona giornata.