В PHP есть такая функция:
bool usort ( array &array, callback cmp_function )
Ей вторым параметром передаётся имя функции, которая будет принимать очередную пару значений и сравнивать их.
Есть обычный класс PHP:
namespace MyProj;
class Test {
public function sortDir($a,$b)
{
if(is_dir($a['path']) && !is_dir($b['path'])) return -1;
if(!is_dir($a['path']) && is_dir($b['path'])) return 1;
if($a['name']<$b['name']) return -1; elseif($a['name']>$b['name']) return 1; else return 0;
}
public function getList()
{
$dir[0] = array('path' => '/home/www', 'name' => 'www');
$dir[1] = array('path' => '/home/www/css', 'name' => 'css');
$dir[2] = array('path' => '/home/www/test.txt', 'name' => 'test.txt');
$dir[3] = array('path' => '/home/www/css/main.css', 'name' => 'main.css');
usort($dir, 'sortDir');
}
}
$obj = new Test();
$obj->getList();
Вот как правильно вызвать
<b>usort($dir, 'sortDir')</b>
в одной из последних строк? Какие варианты не пробовал, всегда выдаёт:
Warning: usort() expects parameter 2 to be a valid callback, function 'sortDir' not found or invalid function name