Reputation: 515
I found many question and answer about this, but not match what i need. i think it's similar/same to this question but don't know why not working for this case. So please try before judging duplicates, thank you.
$avar = array(
0 => array(1,2,3,4,5,6,7,8,9),
1 => array(10,11,12,13,14,15,16,17,7,8,9,10),
23 => array(21,22,23,4,5,6,7,11,12,13,14,15,21));
$avar = array(
0 => array(1,2,3,4,5,6,7,8,9),
1 => array(10,11,12,13,14,15,16,17),
23 => array(21,22,23));
<?php
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;
}
$result = super_unique($avar);
echo "<pre>";
print_r($result);
?>
similar question with answer but not solve my case:
Thank you all
Upvotes: 2
Views: 6510
Reputation: 70490
$seen = array();
foreach($avar as &$entry){
$entry = array_unique(array_diff($entry,$seen));
$seen = array_merge($entry,$seen);
}
unset($entry);
var_dump($avar);
Upvotes: 3