Бортовой журнал Ктулху

Сортировка массива по значениям в PHP

Часто встречающаяся задача которая решается при помощи usort и пользовательской функции. Но немного интереснее становится когда нужно делать это при помощи метода класса.

 

Процедурный стиль

usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}

 

Метод класса

usort($both_arrays, array(get_called_class(), 'cmp')); 
private function cmp($a, $b)  {
return $b['DateS'] - $a['DateS'];
 
}

Внутри класса функции usort необходимо передавать параметры в виде массива: array(get_called_class(), 'cmp').

get_called_class() отдает имя текущего класса.

Такаой способ будет работать в статическом методе.

Есть еще пару способов, например: usort($both_arrays, array($this, 'cmp')) или usort($both_arrays, array("className", 'cmp')).