php数组排序函数

On 08/26/2010, in php, by kilobug
/* 数组排序 */
function array_sort( $data, $order = array() ) {
	if( !$data || !$order ) return $data;
 
	$arglist = array();
	foreach($data as $k => $v)
		foreach($order as $k2 => $v2) {
			if( !isset($arglist[$k2]) ) $arglist[$k2] = array();
			$arglist[$k2][$k] = $v[$k2];
		}
 
	$argstr = '';
	foreach( $order as $k => $v )
		$argstr .= ',$arglist[\''.$k.'\'], SORT_'.$v;
	$argstr{0} = ' ';
 
	eval('array_multisort('.$argstr.',$data);');
	return $data;
}

说明:array_sort($data, $order)
参数:
array $data: 需要排序的数组
array $order: 排序,格式:array(‘键名’ => ‘DESC|ASC’…)

实例:

$array = array(
    array(
        'uid' => 100,
        'username' => 'kilobug',
    ),
    array(
        'uid' => 99,
        'username' => 'kilobug',
    ),
    ....
);
$array = array_sort($array, array('uid' => 'DESC', 'username' => 'ASC'));
var_dump($array);
Tagged with:  

4 Responses to php数组排序函数

  1. pomispoirty says:

    Happy Additional Year one! :)

  2. Adacepypemage says:

    Pleased Fresh Year everybody under the sun! :)

  3. mike says:

    这里有一个数组,以右边的降序为优先排列,请教左边的如何按升序排序?

    159 => 42
    162 => 42
    187 => 42
    144 => 42
    256 => 23
    158 => 23
    322 => 23
    359 => 15

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

无觅相关文章插件,快速提升流量