Oppure

Loading
23/12/15 1:43
giocala88
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:
for($i=0; $i<n; $i++){
$explode = array_push($array, explode(',', $filter[$i]['filter']));
}

generando un array così strutturato:
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:

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));


Ma senza alcun esito. Come posso fare?
Grazie
Ultima modifica effettuata da giocala88 23/12/15 1:50
aaa
23/12/15 9:44
Olekirk91
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 :

$input = array_flatten($array);
function array_flatten($array) { 
  if (!is_array($array)) { 
    return FALSE; 
  } 
  $result = array(); 
  foreach ($array as $key => $value) { 
    if (is_array($value)) { 
      $result = array_merge($result, array_flatten($value)); 
    } 
    else { 
      $result[$key] = $value; 
    } 
  } 
  return $result; 
} 


dopo di che eliminare i doppi:

$input=array_unique($input, SORT_REGULAR);


e ordinarlo:

asort($input);


Spero di esserti stato utile,
Buona giornata.
aaa