美文网首页
uasort的使用以及遇到的一些坑

uasort的使用以及遇到的一些坑

作者: 怎么吃都不胖丶 | 来源:发表于2017-03-16 10:48 被阅读0次

    具体用法如下:

    <?php
    $arr = array(
        'man' => array(
            'salary' => 3000,
            'name'   => '张三',
            'gender' => '男'
        ),
        'woman' => array(
            'salary' => 5000,
            'name'   => '王二丫',
            'gender' => '女'
        )
    );
    uasort($arr, "compare");
    function compare($a, $b)
    {
        //  如果工资一样则不作比较
        if ($a['salary'] == $b['salary'])
            return 0;
        //  工资高的排在前面
        return ($a['salary'] > $b['salary']) ? 1 : -1;
    }
    

    很明显,上述代码根据用户的需求,把数组按照工资的大小进行了排列,最后的结果是工资高的王二丫排在了工资低的张三前面。
    基本用法很简单,需要注意的是在类(Class)中使用这个方法的时候,需要在方法中传入$this指定当前对象。看代码:

    <?php
    class Abc {
    function index()
    {
    
        $arr = array(
            'man' => array(
                'salary' => 3000,
                'name'   => '张三',
                'gender' => '男'
            ),
            'woman' => array(
                'salary' => 5000,
                'name'   => '王二丫',
                'gender' => '女'
            )
        );
        uasort($arr, array($this, "compare"));
        }
        function compare($a, $b)
        {
            //  如果工资一样则不作比较
            if ($a['salary'] == $b['salary'])
                return 0;
            //  工资高的排在前面
            return ($a['salary'] > $b['salary']) ? 1 : -1;
        }
    }
    

    很明显,在类中调用uasort方法的时候,是与在文件中直接调用是不一样的,这或许就是面向对象和面向过程的一个差异吧。

    相关文章

      网友评论

          本文标题:uasort的使用以及遇到的一些坑

          本文链接:https://www.haomeiwen.com/subject/jdbdnttx.html