Come rimuovere i duplicati in un array multi-dimensionale in PHP?

E’ possibile farlo usando la funzione nativa PHP array_unique() con l’aggiunta del flag SORT_REGULAR. Vedi esempio sotto.

// array di test con valori duplicati
$brands = array(
    array(
        'brand_id' => 10,
    ),
    array(
        'brand_id' => 10,
    ),
    array(
        'brand_id' => 32,
    ),
    array(
        'brand_id' => 32,
    ),
    array(
        'brand_id' => 43,
    ),
    array(
        'brand_id' => 43,
    ),
);

// Processiamo l'array $brands con la funzione array_unique con il flag SORT_REGULAR e salviamola in una variabile $unique
$unique = array_unique($brands, SORT_REGULAR);

// Stampiamo il risultato della variabile $unique
var_dump($unique);

//Risultato array pulito dai duplicati
array(3) {
  [0]=>
  array(1) {
    ["brand_id"]=>
    int(10)
  }
  [2]=>
  array(1) {
    ["brand_id"]=>
    int(32)
  }
  [4]=>
  array(1) {
    ["brand_id"]=>
    int(43)
  }
}

Rispondi