0

How to array_unique dimensional arrays I have array below :

Input Array

[0] => Array
    (
        [staff_id] => 1
        [service_id] => 1
        [avatar_url] => gallery-1.png
        [full_name] => Germaine
        [price] => 0.00
    )

[1] => Array
    (
        [staff_id] => 3
        [service_id] => 1
        [avatar_url] => team-5.png
        [full_name] => Jenny
        [price] => 0.00
    )

[2] => Array
    (
        [staff_id] => 5
        [service_id] => 1
        [avatar_url] => gallery-6.png
        [full_name] => Shawn
        [price] => 0.00
    )

[3] => Array
    (
        [staff_id] => 2
        [service_id] => 6
        [avatar_url] => team-3.png
        [full_name] => Gabriel
        [price] => 0.00
    )

[4] => Array
    (
        [staff_id] => 3
        [service_id] => 6
        [avatar_url] => team-5.png
        [full_name] => Jenny
        [price] => 0.00
    )

And i want have result:

Expected Output Array

[0] => Array
    (
        [staff_id] => 1
        [service_id] => 1
        [avatar_url] => gallery-1.png
        [full_name] => Germaine
        [price] => 0.00
    )

[1] => Array
    (
        [staff_id] => 3
        [service_id] => 1
        [avatar_url] => team-5.png
        [full_name] => Jenny
        [price] => 0.00
    )

[2] => Array
    (
        [staff_id] => 5
        [service_id] => 1
        [avatar_url] => gallery-6.png
        [full_name] => Shawn
        [price] => 0.00
    )

[3] => Array
    (
        [staff_id] => 2
        [service_id] => 6
        [avatar_url] => team-3.png
        [full_name] => Gabriel
        [price] => 0.00
    )

Can someone help me. How to do that ?. I use array_unique but it not woking with dimensional arrays. How to resolve this ? Thanks u

Satish Sharma
  • 9,547
  • 6
  • 29
  • 51
  • 1
    Are you getting this data from a database? If so, it's easiest to modify your query to make the result unique – Mark Baker Aug 12 '14 at 07:27

2 Answers2

0

You can do this:

$output_array = array();
$arr_temp_id = array();
foreach($your_array as $arr)
{
      if(!in_array($arr['staff_id'], $arr_temp_id))
      {
          $arr_temp_id[] = $arr['staff_id'];
          $output_array[] = $arr;
      }
}

print_r($output_array);
enrico.bacis
  • 30,497
  • 10
  • 86
  • 115
Satish Sharma
  • 9,547
  • 6
  • 29
  • 51
0

Try this code

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
Jha
  • 23
  • 10