php - 在带有类私有(private)函数的 php 中使用 usort

标签 php arrays sorting object

ok 用一个函数使用 usort 没那么复杂

这是我之前的线性代码中的内容

function merchantSort($a,$b){
    return ....// stuff;
}

$array = array('..','..','..');

我只是简单地排序

usort($array,"merchantSort");

现在我们正在升级代码并删除所有全局函数并将它们放在适当的位置。现在所有代码都在一个类中,我不知道如何使用 usort 函数对数组进行排序,参数是对象方法而不是简单函数

class ClassName {
   ...

   private function merchantSort($a,$b) {
       return ...// the sort
   }

   public function doSomeWork() {
   ...
       $array = $this->someThingThatReturnAnArray();
       usort($array,'$this->merchantSort'); // ??? this is the part i can't figure out
   ...

   }
}

问题是如何在 usort() 函数中调用对象方法

最佳答案

使您的排序功能静态:

private static function merchantSort($a,$b) {
       return ...// the sort
}

并为第二个参数使用数组:

$array = $this->someThingThatReturnAnArray();
usort($array, array('ClassName','merchantSort'));

关于php - 在带有类私有(private)函数的 php 中使用 usort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053994/

相关文章:

php - 在 Symfony2 中使用 2 个不同的表登录

python - 如何选择满足条件的行

python - 3D 数组中每个元素的 Numpy 索引值

java - 添加到集合然后对其进行排序或添加到已排序的集合中是否更快?

PHP条件,如果当前页面,则链接突出显示

php - 在树脂中,使用 PHP include_path 指令默认为/usr/share/php ,即使我更改了它?

java - 数组调用类的问题

PHP -- usort 正在修改数组中对象的内容,我该如何防止这种情况发生?

javascript - 对值最接近 1 的数组进行排序

php - Zend 框架 2 : How to mark form invalid?