首页 > 编程语言 > 详细

php数组排序函数

时间:2017-11-12 10:53:31      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:eval   type   edi   php   log   sort函数   ray   reset   tarray   

$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数组排序函数

标签:eval   type   edi   php   log   sort函数   ray   reset   tarray   

原文:http://www.cnblogs.com/microtiger/p/7820984.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号