2013-01-11 2 views
3

Как использовать usort для сортировки ассоциативного массива внутри контроллера symfony2?Использование usort с ассоциативным массивом внутри контроллера symfony2

//sort 
function compare($a, $b) 
{ 
    return strnatcmp($a['sort'], $b['sort']); 
} 

usort($content, 'compare'); 

Это дает мне следующую ошибку:

Warning: usort() expects parameter 2 to be a valid callback, function 'compare' not found or invalid function name

, как это положить его в своей собственной частной функции, как этот

// 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']); 
} 
+0

Работает ли это, если вы просто реализуете функцию анонимно как 2-й аргумент? – Squazic

+0

Я читал об этом, но не знаю, как это сделать, намек? –

ответ

5

Try реализация функции anonymou хитрая:

usort($content, function ($a, $b) { 
    return strnatcmp($a['sort'], $b['sort']); 
}); 

return $content; 
+0

Красивая, спасибо. Кстати, невозможно ли объявить функцию внутри функции (действия) в symfony2, знаете ли вы? –

+1

Кажется, вы можете сделать что-то подобное в другом ответе. – Squazic

5
usort($content, array($this, 'compare')); 

Это, как вы передаете метод объекта в качестве обратного вызова. См. Примеры callbacks.

 Смежные вопросы

  • Нет связанных вопросов^_^