the following function:
function wftp_dircmp_callback($el1, $el2)
{
if (substr($el1['permissions'],0,1) === 'd')
{
if (substr($el2['permissions'],0,1) === 'd')
{
$eltest = array($el1['fname'],$el2['fname']);
natsort($eltest);
if ($eltest[0] == $el1['fname'])
{
return 1;
}
else
{
return -1;
}
}
else
{
return 1;
}
}
elseif (substr($el2['permissions'],0,1) === 'd')
{
return -1;
}
else
{
$eltest = array($el1['fname'],$el2['fname']);
natsort($eltest);
if ($eltest[0] == $el1['fname'])
{
return 1;
}
else
{
return -1;
}
}
}
is suppoed to be used in a uasort() callback. will someone please tell my why this does not sort directories 'naturally' at the top, and files 'naturally' below? $el1 and $el2 both look like e.g:
array
(
[fname] => www
[size] => 4096
[permissions] => drwxrw-r--
[owner] => moonglob
[group] => moonglob
[modtime] => Nov 2 12:28
)
can anyone help? the output looks like no sorting occured 🙁