2010-03-22 39 views
1

我试图在类的实例内的数组上执行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类,你不能访问$键或$ DIR。问题是,我该如何写这个,所以我可以?

回答

4

看起来你只是想看到当前的实例吗?在回调中传递它。

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

** facepalm **谢谢。 – 2010-03-22 00:16:25

相关问题