`

对象数组按照对象某一字段排序的方法

    博客分类:
  • php
阅读更多

不错的方法,做个记录.

比如我现在有一个对象{person:{"name":"goodman","age":18...}}

有一个数组 personList,其中元素是Person对象.

现在需要将这些对象按照age排序.调用下面的方法:

 

 

function(personList,'age','desc','num');
 

-------------------------------------------------------------------------------------------------------------------------

    /**
     *  php:sorted object in array according to a object's field.
     * 
     * @param array $List
     * @param var $by sort filed
     * @param var $order desc/asc
     * @param var $type sort type(num/string)
     * @return array
     */
    function ArraySort(array $List, $by, $order='', $type='') {
        if (empty($List))
            return $List;
        foreach ($List as $key => $row) {
            //    $sortby[$key] = $row[$by] ;
            $sortby[$key] = $row->$by;
        }
        if ($order == "DESC") {
            if ($type == "num") {
                array_multisort($sortby, SORT_DESC, SORT_NUMERIC, $List);
            } else {
                array_multisort($sortby, SORT_DESC, SORT_STRING, $List);
            }
        } else {
            if ($type == "num") {
                array_multisort($sortby, SORT_ASC, SORT_NUMERIC, $List);
            } else {
                array_multisort($sortby, SORT_ASC, SORT_STRING, $List);
            }
        }
        return $List;
    }
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics