Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Zend Action Helper(或类)中使用uasort()?_Php_Zend Framework_Sorting - Fatal编程技术网

Php 如何在Zend Action Helper(或类)中使用uasort()?

Php 如何在Zend Action Helper(或类)中使用uasort()?,php,zend-framework,sorting,Php,Zend Framework,Sorting,我想使用uasort()函数对数组进行排序。我写了这段代码,效果很好: function cmp($a, $b) { $_a = strlen($a); $_b = strlen($b); if($_a==$_b) { return 0; } return ($_a < $_b)? -1 : +1; } $arr = array(

我想使用uasort()函数对数组进行排序。我写了这段代码,效果很好:

    function cmp($a, $b)
    {
        $_a = strlen($a);
        $_b = strlen($b);
        if($_a==$_b)
        {
            return 0;
        }

        return ($_a < $_b)? -1 : +1;
    }

    $arr = array(
            "234560"=>"the quick brown fox jump",
            "234561"=>"the quick brown fox jump over the lazy dog",
            "234562"=>"the quick brown"
        );

    $array = uasort($arr,"cmp");
这是我的密码

class Zend_Controller_Action_Helper_Utility extends Zend_Controller_Action_Helper_Abstract
{

    public function uasort($array)
    {
        return uasort($array, "cmp");
    }

    function cmp($a, $b)
    {
        $_a = strlen($a);
        $_b = strlen($b);
        if ($_a == $_b)
        {
            return 0;
        }

        return ($_a < $_b) ? -1 : +1;
    }

}
使用
静态函数cmp(){}
但仍然返回null


如何修复它?

您指定的回调错误。如果是实例方法,则需要将其指定为

array($this, 'cmp');
array('Zend_Controller_Action_Helper_Utility', 'cmp');
如果将其设置为静态方法,则需要将其指定为

array($this, 'cmp');
array('Zend_Controller_Action_Helper_Utility', 'cmp');

有关更多详细信息,请参阅。

它没有像我预期的那样工作,只需返回布尔值true(var\u dump)@Jon@eureka:不返回数组,而是将其排序到位。阅读文档。