|
|
|
|
|
для: Тень&
(26.06.2010 в 21:52)
| | Я всего лишь исправил вариант автора на идентичный, но работающий.
ООПшно можно определить интерфейс Comparer и реализовывать его сколько угодно раз с нужными вариантами метода (обходясь без анонимных функций).
По предложенной автором версии не видно, чтобы его волновала эта проблема. Возможно ещё не дошёл до этой части, а возможно в этом классе действительно нужен единственный вариант сравнения. | |
|
|
|
|
|
|
|
для: sms-send
(26.06.2010 в 20:23)
| | Неприятность в том, что метод сравнения для сортировки как бы не относится к классу array_class. Не ООПшно. Поэтому тут должна быть только лямбда/анонимная функция. | |
|
|
|
|
|
|
|
для: sms-send
(26.06.2010 в 20:27)
| | пардон.. проглядел второй аргумент usort | |
|
|
|
|
|
|
|
для: Trianon
(26.06.2010 в 20:24)
| | Пробовал, всё прекрасно работает. | |
|
|
|
|
|
|
|
для: sms-send
(26.06.2010 в 20:23)
| | Вы же не пробовали запустить этот код, не так ли? | |
|
|
|
|
|
|
|
для: neokortex
(26.06.2010 в 18:10)
| |
// <?php
class array_class {
public $array_; // массив с которым работаем
public $sort_by; // параметр по которму сортируем массив
private function sort_function($a, $b) {
return strcmp($a[$this->sort_by], $b[$this->sort_by]);
}
//// далее функция сортировки массива
public function sort_array() {
usort ($this->array_, array($this, "sort_function"));
}
};
|
| |
|
|
|
|
|
|
|
для: neokortex
(26.06.2010 в 18:10)
| | дык ить контекст класса-то в обычной функции теряется... | |
|
|
|
|
|
|
|
для: neokortex
(26.06.2010 в 18:33)
| | А что у вас за массив и что должно быть результатом сортировки? Кусочек массива покажите, и результат его сортировки. | |
|
|
|
|
|
|
|
для: neokortex
(26.06.2010 в 18:33)
| | Тогда http://ru.php.net/manual/en/function.create-function.php, но, чую, скоро там будет надпись "deprecated" | |
|
|
|
|
|
|
|
для: Тень&
(26.06.2010 в 18:29)
| | 5.2.4 А универсального решения нет? Может логику изменить или так и придется все ручками все время прописывать? | |
|
|
|
|