php 数组 order by,PHP 使用二维数组实现SQL的ORDER BY排序的方法

这篇文章展示了如何使用PHP的array_multisort函数对二维数组进行多条件排序,例如按照'name'升序,'type'降序,'size'升序的方式。代码示例中提供了一个名为sysSortArray的自定义函数,用于接收排序键和排序方式,最终返回排序后的数组。示例中还给出了一个包含多个元素的数组,并演示了如何调用该函数进行排序。
摘要由CSDN通过智能技术生成

这篇文章主要为大家详细介绍了PHP 使用二维数组实现SQL的ORDER BY排序的方法,具有一定的参考价值,可以用来参考一下。

经测试代码如下:

/**

*

* @package BugFree

* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $

Sort an two-dimension array by some level two items use array_multisort() function.

sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)

* @author Chunsheng Wang

* @param array $ArrayData the array to sort.

* @param string $KeyName1 the first item to sort by.

* @param string $SortOrder1 the order to sort by("SORT_ASC"|"SORT_DESC")

* @param string $SortType1 the sort type("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")

* @return array sorted array.

*/

function sysSortArray($ArrayData, $KeyName1, $SortOrder1 = "SORT_ASC", $SortType1 = "SORT_REGULAR")

{

if(!is_array($ArrayData))

{

return $ArrayData;

}

// Get args number.

$ArgCount = func_num_args();

// Get keys to sort by and put them to SortRule array.

for($I = 1;$I < $ArgCount;$I ++)

{

$Arg = func_get_arg($I);

if(!eregi("SORT", $Arg))

{

$KeyNameList[] = $Arg;

$SortRule[] = '$' . $Arg;

}

else

{

$SortRule[] = $Arg;

}

}

// Get the values according to the keys and put them to array.

foreach($ArrayData AS $Key => $Info)

{

foreach($KeyNameList AS $KeyName)

{

${$KeyName}[$Key] = $Info[$KeyName];

}

}

// Create the eval string and eval it.

$EvalString = 'array_multisort(' . join(",", $SortRule) . ',$ArrayData);';

eval ($EvalString);

return $ArrayData;

}

// ################# 示例 #################

$arr = array(

array(

'name' => '学习',

'size' => '1235',

'type' => 'jpe',

'time' => '1921-11-13',

'class' => 'dd',

),

array(

'name' => '中国功夫',

'size' => '153',

'type' => 'jpe',

'time' => '2005-11-13',

'class' => 'jj',

),

array(

'name' => '编程',

'size' => '35',

'type' => 'gif',

'time' => '1997-11-13',

'class' => 'dd',

),

array(

'name' => '中国功夫',

'size' => '65',

'type' => 'jpe',

'time' => '1925-02-13',

'class' => 'yy',

),

array(

'name' => '中国功夫',

'size' => '5',

'type' => 'icon',

'time' => '1967-12-13',

'class' => 'rr',

),

);

print_r($arr);

// 注意:按照数字方式排序时 153 比 65 小

$temp = sysSortArray($arr, "name", "SORT_ASC", "type", "SORT_DESC", "size", "SORT_ASC", "SORT_STRING");

print_r($temp);

?>

/*** 来自512笔记(www.512pic.com) ***/

注:关于PHP 使用二维数组实现SQL的ORDER BY排序的方法的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:二维数组,排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值