How to remove duplicate values from a multidimensional array?

Rocx

I have array data from two separate mysql queries. Array data looks like below:

0
:
{user_id: 82, ac_type: 1,…}
1
:
{user_id: 80, ac_type: 5,…}
2
:
{user_id: 76, ac_type: 1,…}
3
:
{user_id: 82, ac_type: 1,…}
4
:
{user_id: 80, ac_type: 5,…}

I want to remove the duplicate array items.

So, my output will be like this:

0
:
{user_id: 82, ac_type: 1,…}
1
:
{user_id: 80, ac_type: 5,…}
2
:
{user_id: 76, ac_type: 1,…}

I want to check duplicate by user_id.

I have tried the following solutions, but neither are not working as desired.

$input = array_unique($res, SORT_REGULAR);

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

I also tried below.

$results = array();

foreach ($res as $k => $v) {
        $results[implode($v)] = $v;
}

$results = array_values($results);
print_r($results);

But still duplicate data exist.

mickmackusa

You don't need any custom function calls for this task. Just use array_column() to assign new temporary keys to each subarray, then reindex the subarrays and print to screen. *this does overwrite earlier occurrences with later ones.

Code: (Demo)

$array=[
    ['user_id'=>82,'ac_type'=>1],
    ['user_id'=>80,'ac_type'=>5],
    ['user_id'=>76,'ac_type'=>1],
    ['user_id'=>82,'ac_type'=>2],
    ['user_id'=>80,'ac_type'=>6]
];
var_export(array_values(array_column($array,NULL,'user_id')));

Output:

array (
  0 => 
  array (
    'user_id' => 82,
    'ac_type' => 2,
  ),
  1 => 
  array (
    'user_id' => 80,
    'ac_type' => 6,
  ),
  2 => 
  array (
    'user_id' => 76,
    'ac_type' => 1,
  ),
)

If you want to keep the first occurrences and ignore all subsequent duplicates, this will do:

Code: (Demo) (* this keeps the first occurrences)

$array=[
    ['user_id'=>82,'ac_type'=>1],
    ['user_id'=>80,'ac_type'=>5],
    ['user_id'=>76,'ac_type'=>1],
    ['user_id'=>82,'ac_type'=>2],
    ['user_id'=>80,'ac_type'=>6]
];

foreach($array as $a){
    if(!isset($result[$a['user_id']])){
        $result[$a['user_id']]=$a;      // only store first occurence of user_id
    }
}
var_export(array_values($result));  // re-index

Output:

array (
  0 => 
  array (
    'user_id' => 82,
    'ac_type' => 1,
  ),
  1 => 
  array (
    'user_id' => 80,
    'ac_type' => 5,
  ),
  2 => 
  array (
    'user_id' => 76,
    'ac_type' => 1,
  ),
)

If you don't mind losing the order of your subarrays, you can use array_reverse() with array_column() to retain the first occurrences using temporary keys, then use array_values() to re-index:

var_export(array_values(array_column(array_reverse($array),NULL,'user_id')));
/*
array (
  0 => 
  array (
    'user_id' => 76,
    'ac_type' => 1,
  ),
  1 => 
  array (
    'user_id' => 82,
    'ac_type' => 1,
  ),
  2 => 
  array (
    'user_id' => 80,
    'ac_type' => 5,
  ),
)
*/

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Remove duplicate values from a multidimensional array in PHP

From Dev

Remove duplicate values from a multidimensional array

From Dev

remove duplicate values from multidimensional array

From Dev

How to remove duplicate entries from multidimensional array?

From Dev

remove duplicate values from multidimensional array by single value

From

How to remove duplicate values from an array in PHP

From Dev

How to get rid of duplicate values from multidimensional array

From Dev

Remove duplicate combination of elements from multidimensional array

From Dev

Remove duplicate values of specific key in multidimensional array in PHP but remove the last?

From Dev

How to detect duplicate values in multidimensional associative array?

From Dev

How to check duplicate values in multidimensional associative array?

From Dev

Remove consecutive array with duplicate values in multidimensional array using PHP

From PHP

PHP - performant way to remove duplicate values from a huge multidimensional indexed array

From Dev

How to remove duplicate values in array?

From Dev

Remove Duplication from an multidimensional array by specific values

From Dev

PHP Remove duplicate keys and combine values in to multidimensional array

From Dev

how to remove duplicate values from Array using reactjs?

From

How to remove duplicate values from a multi-dimensional array in PHP

From Dev

How to remove duplicate values from a multidimentional array according to a key

From Dev

How to remove duplicate data values from an array of objects in javascript?

From Dev

Javascript: How to remove only one value from duplicate array values

From Dev

How to remove duplicate values from array in foreach loop?

From Dev

PHP - How to remove duplicate values from array (compare 2 arrays)

From Dev

How to remove adjascent duplicate values from perl array

From Dev

How to remove duplicate pair values from given array in Ruby?

From Dev

How to remove duplicate key value array in multidimensional array

From Dev

how to remove an array from a multidimensional array?

From Dev

Remove item with duplicate ID from multidimensional array with criterion which to keep

From Dev

PHP- Remove duplicate value from multidimensional array

Related Related

  1. 1

    Remove duplicate values from a multidimensional array in PHP

  2. 2

    Remove duplicate values from a multidimensional array

  3. 3

    remove duplicate values from multidimensional array

  4. 4

    How to remove duplicate entries from multidimensional array?

  5. 5

    remove duplicate values from multidimensional array by single value

  6. 6

    How to remove duplicate values from an array in PHP

  7. 7

    How to get rid of duplicate values from multidimensional array

  8. 8

    Remove duplicate combination of elements from multidimensional array

  9. 9

    Remove duplicate values of specific key in multidimensional array in PHP but remove the last?

  10. 10

    How to detect duplicate values in multidimensional associative array?

  11. 11

    How to check duplicate values in multidimensional associative array?

  12. 12

    Remove consecutive array with duplicate values in multidimensional array using PHP

  13. 13

    PHP - performant way to remove duplicate values from a huge multidimensional indexed array

  14. 14

    How to remove duplicate values in array?

  15. 15

    Remove Duplication from an multidimensional array by specific values

  16. 16

    PHP Remove duplicate keys and combine values in to multidimensional array

  17. 17

    how to remove duplicate values from Array using reactjs?

  18. 18

    How to remove duplicate values from a multi-dimensional array in PHP

  19. 19

    How to remove duplicate values from a multidimentional array according to a key

  20. 20

    How to remove duplicate data values from an array of objects in javascript?

  21. 21

    Javascript: How to remove only one value from duplicate array values

  22. 22

    How to remove duplicate values from array in foreach loop?

  23. 23

    PHP - How to remove duplicate values from array (compare 2 arrays)

  24. 24

    How to remove adjascent duplicate values from perl array

  25. 25

    How to remove duplicate pair values from given array in Ruby?

  26. 26

    How to remove duplicate key value array in multidimensional array

  27. 27

    how to remove an array from a multidimensional array?

  28. 28

    Remove item with duplicate ID from multidimensional array with criterion which to keep

  29. 29

    PHP- Remove duplicate value from multidimensional array

HotTag

Archive