code_junkie

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

Nov 12th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [0] => abc
  6. [1] => def
  7. )
  8.  
  9. [1] => Array
  10. (
  11. [0] => ghi
  12. [1] => jkl
  13. )
  14.  
  15. [2] => Array
  16. (
  17. [0] => mno
  18. [1] => pql
  19. )
  20.  
  21. [3] => Array
  22. (
  23. [0] => abc
  24. [1] => def
  25. )
  26.  
  27. [4] => Array
  28. (
  29. [0] => ghi
  30. [1] => jkl
  31. )
  32.  
  33. [5] => Array
  34. (
  35. [0] => mno
  36. [1] => pql
  37. )
  38.  
  39. )
  40.  
  41. function multi_unique($array) {
  42. foreach ($array as $k=>$na)
  43. $new[$k] = serialize($na);
  44. $uniq = array_unique($new);
  45. foreach($uniq as $k=>$ser)
  46. $new1[$k] = unserialize($ser);
  47. return ($new1);
  48. }
  49.  
  50. $input = array_map("unserialize", array_unique(array_map("serialize", $input)));
  51.  
  52. function array_unique_multidimensional($input)
  53. {
  54. $serialized = array_map('serialize', $input);
  55. $unique = array_unique($serialized);
  56. return array_intersect_key($input, $unique);
  57. }
  58.  
  59. function arrayUnique($myArray){
  60. if(!is_array($myArray))
  61. return $myArray;
  62.  
  63. foreach ($myArray as &$myvalue){
  64. $myvalue=serialize($myvalue);
  65. }
  66.  
  67. $myArray=array_unique($myArray);
  68.  
  69. foreach ($myArray as &$myvalue){
  70. $myvalue=unserialize($myvalue);
  71. }
  72.  
  73. return $myArray;
  74.  
  75. }
Add Comment
Please, Sign In to add comment