基于实例属性的自定义数组排序

时间:2010-03-22 00:08:49

标签: php arrays

我正在尝试在类的实例内的数组上执行usort。但排序取决于所述实例的属性。

代码(不起作用):

class foo {
  private $array;
  private $key;
  private $dir;

  function sort() {
    usort($this->array, array("foo", "orderArray"));
  }

  function orderArray($a, $b) {
    return strcmp($a[$this->key], $b[$this->key]) * $this->dir;
  }
}

orderArray课程中,您无法访问$ key或$ dir 。问题是,我怎么能这样写呢?

1 个答案:

答案 0 :(得分:4)

看起来你只想看到当前的实例?将其传递给回调。

  function sort() {
    usort($this->array, array($this, "orderArray"));
  }