Remove duplicate combination of elements from multidimensional array

Ivan Vulović

I have an array with fields:

$products = array(
    [0] => array('name' => 'product_one', 'category' => 'category_one', employee => '3234'),
    [1] => array('name' => 'product_two', 'category' => 'category_two', employee => '5421'),
    [2] => array('name' => 'product_three', 'category' => 'category_one', employee => '3234'),
    [3] => array('name' => 'product_one', 'category' => 'category_one', employee => '2153'),
    [4] => array('name' => 'product_one', 'category' => 'category_two', employee => '6312')        
)

Now, in this case, employee field is not important, but the combination of product/category is unique.

Wanted result:

$products = array(
    [0] => array('name' => 'product_one', 'category' => 'category_one', employee => '3234'),
    [1] => array('name' => 'product_two', 'category' => 'category_two', employee => '5421'),
    [2] => array('name' => 'product_three', 'category' => 'category_one', employee => '3234'),
    [4] => array('name' => 'product_one', 'category' => 'category_two', employee => '6312')        
)

Any idea what is the best way to do this? On production, I have more than 30.000 elements and usually around 10 duplicates. Also in real database, I have 12 fields and a combination of 4 of them needs to be unique).

Nick

If you don't mind which of the duplicates you keep, it's probably simplest to iterate over the loop, making a new array with keys which are a combination of the required unique values (I've used a separator of ## in this code, you can use anything that cannot occur in the values). This way duplicates will be automatically removed as an array cannot have identical keys. Once the loop is done the output array can be re-indexed numerically using array_values:

$output = array();
foreach ($products as $p) {
    $output["{$p['name']}##{$p['category']}"] = $p;
}

$output = array_values($output);
print_r($output);

Output (for your sample data):

Array
(
    [0] => Array
        (
            [name] => product_one
            [category] => category_one
            [employee] => 2153
        )
    [1] => Array
        (
            [name] => product_two
            [category] => category_two
            [employee] => 5421
        )
    [2] => Array
        (
            [name] => product_three
            [category] => category_one
            [employee] => 3234
        )
    [3] => Array
        (
            [name] => product_one
            [category] => category_two
            [employee] => 6312
        )
)

Demo on 3v4l.org

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

How to remove duplicate values from a multidimensional array?

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 special elements from multidimensional array in javascript

From

Remove duplicate elements from array in Ruby

From Dev

Remove duplicate elements from object array

From Dev

Is there a simple way remove duplicate elements from an array?

From Dev

To remove duplicate elements from an array in Perl

From Dev

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

From Dev

PHP- Remove duplicate value from multidimensional array

From Dev

remove duplicate values from multidimensional array by single value

From Dev

Remove duplicate from multidimensional array but keep lowest value

From Dev

Remove duplicate elements in array

From Javascript

Remove the last 2 elements from each index in a Multidimensional Array

From Dev

How to delete duplicate elements in a multidimensional array?

From Dev

Sum multidimensional array elements if they have an duplicate

From Dev

Remove duplicate words in array elements

From Dev

How to remove duplicate elements from an array in Swift 5?

From Dev

Remove sub-string from array elements and duplicate pyspark

From Dev

Algorithm to remove duplicate elements from an array written in pseudocode

From Dev

Remove contiguous duplicate elements from an array list in Java (with panache)

From Dev

How to remove duplicate elements from random array I generated?

From Dev

Remove duplicate elements and take one element from two array

From Dev

Remove duplicate elements from the DOM

From Dev

How to remove certain elements from an array into a new array and leave the no duplicate elements at the same position with the same array length

From PHP

How to remove duplicate data from array on basis of 2 key-value combination in PHP

From Dev

Remove duplicates from a multidimensional array

Related Related

  1. 1

    Remove duplicate values from a multidimensional array in PHP

  2. 2

    How to remove duplicate values from a multidimensional array?

  3. 3

    Remove duplicate values from a multidimensional array

  4. 4

    remove duplicate values from multidimensional array

  5. 5

    How to remove duplicate entries from multidimensional array?

  6. 6

    Remove special elements from multidimensional array in javascript

  7. 7

    Remove duplicate elements from array in Ruby

  8. 8

    Remove duplicate elements from object array

  9. 9

    Is there a simple way remove duplicate elements from an array?

  10. 10

    To remove duplicate elements from an array in Perl

  11. 11

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

  12. 12

    PHP- Remove duplicate value from multidimensional array

  13. 13

    remove duplicate values from multidimensional array by single value

  14. 14

    Remove duplicate from multidimensional array but keep lowest value

  15. 15

    Remove duplicate elements in array

  16. 16

    Remove the last 2 elements from each index in a Multidimensional Array

  17. 17

    How to delete duplicate elements in a multidimensional array?

  18. 18

    Sum multidimensional array elements if they have an duplicate

  19. 19

    Remove duplicate words in array elements

  20. 20

    How to remove duplicate elements from an array in Swift 5?

  21. 21

    Remove sub-string from array elements and duplicate pyspark

  22. 22

    Algorithm to remove duplicate elements from an array written in pseudocode

  23. 23

    Remove contiguous duplicate elements from an array list in Java (with panache)

  24. 24

    How to remove duplicate elements from random array I generated?

  25. 25

    Remove duplicate elements and take one element from two array

  26. 26

    Remove duplicate elements from the DOM

  27. 27

    How to remove certain elements from an array into a new array and leave the no duplicate elements at the same position with the same array length

  28. 28

    How to remove duplicate data from array on basis of 2 key-value combination in PHP

  29. 29

    Remove duplicates from a multidimensional array

HotTag

Archive