PHP排序函数-根据指定字段将数组排序

来源:互联网 发布:淘宝源码 编辑:程序博客网 时间:2024/05/17 06:21

        $sort_array = array('total_qty', 'total_price');
        $productCount = $this->countArraySort($productCount, $sh, $sort_array, 'total_price'); //统计排序 

     /**

     * @desc 统计排序
     * @author marion
     * @param array 待排序数组 $array
     * @param &array 排序条件 $sh
     * @param array 指定排序数组 $key_array
     * @param string 指定默认排序字段 $default
     * @return array 排序后数组
     */

    function countArraySort($array, &$sh, $key_array = array(), $default = 'order_num') {
        $sort_total_qty = array();
        if ($sh['order']) {
            foreach ($sh['order'] as $key => $value) {
                foreach ($key_array as $v) {
                     if ($key == $v) {
                        switch ($value) {
                            case $v . '.asc':
                                foreach ($array as $value) {
                                    $sort_total_qty[] = $value[$v];
                                }
                                array_multisort($sort_total_qty, SORT_ASC, $array);
                                $sh['order'][$v] = $v . '.desc';
                                break;
                            case $v .'.desc':
                                foreach ($array as $value) {
                                    $sort_total_qty[] = $value[$v];
                                }
                                array_multisort($sort_total_qty, SORT_DESC, $array);
                                $sh['order'][$v] = $v . '.asc';
                                break;
                            default:
                                # code...
                                break;
                        }
                        break;
                    }
                }
            }
        } else {
            foreach ($array as $value) {
                $sort_total_qty[] = $value[$default];
            }
            array_multisort($sort_total_qty, SORT_DESC, $array);
        }

        return $array;
    }
0 0
原创粉丝点击