Как я могу использовать usort
для сортировки ассоциативного массива внутри контроллера symfony2
?
//sort function compare($a, $b) { return strnatcmp($a['sort'], $b['sort']); } usort($content, 'compare');
Это дает мне следующую ошибку:
Предупреждение: usort () ожидает, что параметр 2 будет действительным обратным вызовом, функция «сравнить» не найдена или неверное имя функции
как и ставит его в свою собственную частную функцию
// sort usort($content, '$this->compare'); return $content; } //sort private function compare($a, $b) { return strnatcmp($a['sort'], $b['sort']); }
это без изменений
// sort usort($content, 'compare'); return $content; } //sort private function compare($a, $b) { return strnatcmp($a['sort'], $b['sort']); }
Попробуйте выполнить функцию анонимно:
usort($content, function ($a, $b) { return strnatcmp($a['sort'], $b['sort']); }); return $content;
usort($content, array($this, 'compare'));
Так передается метод объекта как обратный вызов. См. Обратные вызовы для примеров.