zoukankan      html  css  js  c++  java
  • php数组排序函数

    $data[]=array(
    					'team'=>$item['post_name'],
    					'name'=>$item['name'],
    					'total'=>$total,
    					'total_point'=>$total_pt,
    					'total_hd'=>$total_hd,
    					'ChouSale'=>$ChouSale,
    					'ChouSale_pt'=>$ChouSale_pt,
    					'ChouSale_hd'=>$ChouSale_hd,
    );
    $data = sysSortArray($data,'total_point','SORT_DESC','SORT_NUMERIC');
    function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
    	{
    		if(!is_array($ArrayData))
    		{
    			return $ArrayData;
    		}
    		$ArgCount = func_num_args();
    		for($I = 1;$I < $ArgCount;$I ++)
    		{
    			$Arg = func_get_arg($I);
    			if(!eregi("SORT",$Arg))
    			{
    				$KeyNameList[] = $Arg;
    				$SortRule[]    = '$'.$Arg;
    			}
    			else
    			{
    				$SortRule[]    = $Arg;
    			}
    		}
    		foreach($ArrayData AS $Key => $Info)
    		{
    			foreach($KeyNameList AS $KeyName)
    			{
    				${$KeyName}[$Key] = $Info[$KeyName];
    			}
    		}
    		$EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
    		eval ($EvalString);
    		return $ArrayData;
    	}	
    

      用PHP自带array_multisort函数排序 

     $data = array();
        $data[] = array('volume' => 67, 'edition' => 2);
        $data[] = array('volume' => 86, 'edition' => 1);
        $data[] = array('volume' => 85, 'edition' => 6);
        $data[] = array('volume' => 98, 'edition' => 2);
        $data[] = array('volume' => 86, 'edition' => 6);
        $data[] = array('volume' => 67, 'edition' => 7);
        // 取得列的列表
        foreach ($data as $key => $row)
        {
            $volume[$key]  = $row['volume'];
            $edition[$key] = $row['edition'];
        }
        array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
        print_r($data);
    

      自定义函数排序1

    $data = array();
        $data[] = array('volume' => 67, 'edition' => 2);
        $data[] = array('volume' => 86, 'edition' => 1);
        $data[] = array('volume' => 85, 'edition' => 6);
        $data[] = array('volume' => 98, 'edition' => 2);
        $data[] = array('volume' => 86, 'edition' => 6);
        $data[] = array('volume' => 67, 'edition' => 7);
        // 取得列的列表
        foreach ($data as $key => $row)
        {
            $volume[$key]  = $row['volume'];
            $edition[$key] = $row['edition'];
        }
        $ret = arraySort($data, 'volume', 'desc');
        print_r($ret);
        /**
         * @desc arraySort php二维数组排序 按照指定的key 对数组进行排序
         * @param array $arr 将要排序的数组
         * @param string $keys 指定排序的key
         * @param string $type 排序类型 asc | desc
         * @return array
         */
        function arraySort($arr, $keys, $type = 'asc') {
            $keysvalue = $new_array = array();
            foreach ($arr as $k => $v){
                $keysvalue[$k] = $v[$keys];
            }
            $type == 'asc' ? asort($keysvalue) : arsort($keysvalue);
            reset($keysvalue);
            foreach ($keysvalue as $k => $v) {
               $new_array[$k] = $arr[$k];
            }
            return $new_array;
        }
    

      

  • 相关阅读:
    blktrace分析IO
    Mac-配置SecureCRT
    Mac-安装itellij idea
    Mac-sublime text 3破解版
    Mac-item+zsh
    Mac-安装homebrew
    Mac-装机
    Mac-WIFI总是断网
    Git-ssh登录github
    Git-回滚操作
  • 原文地址:https://www.cnblogs.com/microtiger/p/7820984.html
Copyright © 2011-2022 走看看