记一次产品需求中的数组排序方法

PHP 根据数组中某个指定的字段进行排序

  • 代码写的不好。有更高校的排序方法,希望贴出来,学习学习
    /**
     * 根据字段排序
     * asc正向排序 desc逆向排序 nat自然排序
     * @param     [type]     $array   需要排序的数组
     * @param     [type]     $field   指定排序的字段
     * @param     string     $sortby  排序类型
     * @return    arrayOrbool         排完序的新数组或者排序失败
     */
    public function listSortBy($array, $field, $sortby = 'asc')
    {
        if (is_array($array)) {
            $refer = $resultSet = array();
            foreach ($array as $key => $data) {
                $refer[$key] = &$data[$field];
            }
            switch ($sortby) {
                case 'asc': // 正向排序
                    asort($refer);
                    break;
                case 'desc': // 逆向排序
                    arsort($refer);
                    break;
                case 'nat': // 自然排序
                    natcasesort($refer);
                    break;
            }
            foreach ($refer as $k => $val) {
                $resultSet[] = &$array[$k];
            }
            return $resultSet;
        }
        return false;
    }
php
本作品采用《CC 协议》,转载必须注明作者和本文链接
微信搜索:上帝喜爱笨人
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!