2010-03-22 117 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

相關問題