php数组排序函数

Posted Microtiger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
    }

  

以上是关于php数组排序函数的主要内容,如果未能解决你的问题,请参考以下文章

PHP 数组排序:内置函数算法排序

写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

PHP:根据二维数组中的某个字段进行排序

php+mysql,把三个数字按从小到大排序变成一个三位数

php数组常用函数

PHP数组排序函数合集 以及它们之间的联系分析