array_unique 5-dimensional array php
-
24-01-2021 - |
Question
I am looking for an elegant way to dedupe a 5-dimensional array like thaht :
Array
(
[LOADERS] => Array
(
[S130] => Array
(
[527311001 & Above] => Array
(
[MAINTENANCE ITEMS] => Array
(
[0] => MAINTENANCE ITEMS
[1] => SCHEDULED MAINTENANCE ITEMS (50 HOUR)
[2] => SCHEDULED MAINTENANCE ITEMS (250 HOUR)
[3] => SCHEDULED MAINTENANCE ITEMS (1000 HOUR)
[4] => SCHEDULED MAINTENANCE ITEMS (1000 HOUR)
[5] => MAINTENANCE ITEMS
[6] => SCHEDULED MAINTENANCE ITEMS (50 HOUR)
[7] => SCHEDULED MAINTENANCE ITEMS (250 HOUR)
[8] => SCHEDULED MAINTENANCE ITEMS (500 HOUR)
[9] => SCHEDULED MAINTENANCE ITEMS (1000 HOUR)
)
)
)
)
)
Is this possible or should I use 5-nested foreach ?
Solution
since array_unique doesn't work with multidimensional arrays.
you'll have to write your own logic to do this with could be:
- a lot of nested loops, like you said
or a recursice version of array_unique like this (taken from the documentation):
function super_unique($array) { $result = array_map("unserialize", array_unique(array_map("serialize", $array))); foreach ($result as $key => $value) { if ( is_array($value) ) { $result[$key] = super_unique($value); } } return $result; }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow