class Test{
public $data = [];
public function setData(array $data){
$this->data = $data;
}
public function getData(){
return $this->data;
}
public function mySort(){
uasort($this->data, array($this, 'cmp'));
}
private function cmp($a, $b){
if($a['price'] == $b['price']){
return 0;
}
return ($a['price'] < $b['price']) ? -1 : 1;
}
}
$a = array(
1 => array('name' => 'Товар 1', 'price' => 900),
2 => array('name' => 'Товар 2', 'price' => 1200),
3 => array('name' => 'Товар 3', 'price' => 300),
4 => array('name' => 'Товар 4', 'price' => 1100)
);
$b = new Test();
$b->setData($a);
$b->mySort();
var_dump($b->getData());
Если я захочу сравнить не по полю price, а по другому, мне метод новый писать? Или можно как-то передать параметр в функцию uasort?