phparraysmultidimensional-arrayfilterduplicates

Show only unique values from Array


I have the following array in php:

array(12) {
  [0]=>
  array(2) {
    ["adress"]=>
    string(17) "Kungsvägen 118 A "
    ["dob"]=>
    string(10) "1969-06-17"
  }
  [1]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1969-06-17"
  }
  [2]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1980-05-22"
  }
  [3]=>
  array(2) {
    ["adress"]=>
    string(12) "Myntvägen 8 "
    ["dob"]=>
    string(10) "1980-05-22"
  }
  [4]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1993-05-09"
  }
  [5]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1989-06-28"
  }
  [6]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1991-03-17"
  }
  [7]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1989-10-30"
  }
  [8]=>
  array(2) {
    ["adress"]=>
    string(23) "Gasslanda VÄSTERGÅRD 2 "
    ["dob"]=>
    string(10) "1980-10-30"
  }
  [9]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1980-10-30"
  }
  [10]=>
  array(2) {
    ["adress"]=>
    string(14) "Skolgatan 1 B "
    ["dob"]=>
    string(10) "1990-05-01"
  }
  [11]=>
  array(2) {
    ["adress"]=>
    string(11) "Ågatan 6 A "
    ["dob"]=>
    string(10) "1990-05-01"
  }
}

I want to print out the unique adress-values in this array when I'm doing an foreach. As you can see, Skolgatan 1 B appears several times in the array, so I want to print it out just once in my loop. How can I do this? I have tried

array_unique([$newArray['adress']);

but that does not work.


Solution

  • Something like this should work:

    $printed_vals = array();
    foreach ($array as $item) {
        if (!in_array($item['adress'], $printed_vals)) {
            print_r($item);
            $printed_vals[] = $item['adress'];
        }
    }