<?php
function array_uunique($rgData, $fnCompare=null)
{
if(!isset($fnCompare))
{
return array_unique($rgData);
}
if(!is_callable($fnCompare))
{
return null;
}
if(!count($rgData))
{
return array();
}
$rgResult = array();
foreach($rgData as $mItem)
{
foreach($rgResult as $mTest)
{
if(!call_user_func_array($fnCompare, [$mItem, $mTest]))
{
continue 2;
}
}
$rgResult[]=$mItem;
}
return $rgResult;
}
$rgResult = array_uunique(['foo', 'feo', 'bee' , 'bar', 'baz'], function($x, $y)
{
return levenshtein($x, $y)>1;
});
var_dump($rgResult);
preferences:
35.54 ms | 402 KiB | 5 Q