note 21725 modified in function.array-unique by vrana
| From: | vrana@php.net | Date: | Tue, 17 Aug 2004 14:50:32 +0000 |
| Subject: | note 21725 modified in function.array-unique by vrana | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-79987@lists.php.net to get a copy of this message | ||
array_unique() doesn't return anything useful if your input is an
array containing arrays. This function overcomes the problem.
Any level of recursions is possible here. If the input is a plain
array, the result is compatible with array_unique() result.
<?php
function recursivemakehash($tab)
{
if(!is_array($tab))
return $tab;
$p = '';
foreach($tab as $a => $b)
$p .= sprintf('%08X%08X', crc32($a), crc32(recursivemakehash($b)));
return $p;
}
function array_unique2($input)
{
$dumdum = array();
foreach($input as $a => $b)
$dumdum[$a] = recursivemakehash($b);
$newinput = array();
foreach(array_unique($dumdum) as $a => $b)
$newinput[$a] = $input[$a];
return $newinput;
}
?>
--was--
array_unique() doesn't return anything useful if your input is an
array containing arrays. This function overcomes the problem.
Any level of recursions is possible here. If the input is a plain
array, the result is compatible with array_unique() result.
function recursivemakehash($tab)
{
if(!is_array($tab))
return $tab;
$p = '';
foreach($tab as $a => $b)
$p .= sprintf('%08X%08X', crc32($a), crc32(recursivemakehash($b)));
return $p;
}
function array_unique2($input)
{
$dumdum = array();
foreach($input as $a => $b)
$dumdum[$a] = recursivemakehash($b);
$newinput = array();
foreach(array_unique($dumdum) as $a => $b)
$newinput[$a] = $input[$a];
return $newinput;
}
http://php.net/manual/en/function.array-unique.php