php二维数组根据某字段排序(对查询结果集进行排序)
2016-02-17 18:00
971 查看
原文:http://www.oschina.net/code/snippet_205403_35826
function list_sort_by($list, $field, $sortby = 'asc'){
if (is_array($list)){
$refer = $resultSet = array();
foreach ($list as $i => $data)
{
$refer[$i] = &$data[$field];
}
switch ($sortby){
case 'asc': // 正向排序
asort($refer);
break;
case 'desc': // 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ($refer as $key => $val){
$resultSet[] = &$list[$key];
}
return $resultSet;
}
return false;
}
测试:
$list = array(
0 => array(
'id' => 1,
'name' => '第一'
),
1 => array(
'id' => 3,
'name' => '第三'
),
2 => array(
'id' => 2,
'name' => '第二'
),
3 => array(
'id' => 4,
'name' => '第四'
),
);
//解答
$new_list = list_sort_by($list, 'id', 'desc');
echo "<pre>";
var_dump($new_list);
function list_sort_by($list, $field, $sortby = 'asc'){
if (is_array($list)){
$refer = $resultSet = array();
foreach ($list as $i => $data)
{
$refer[$i] = &$data[$field];
}
switch ($sortby){
case 'asc': // 正向排序
asort($refer);
break;
case 'desc': // 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ($refer as $key => $val){
$resultSet[] = &$list[$key];
}
return $resultSet;
}
return false;
}
测试:
$list = array(
0 => array(
'id' => 1,
'name' => '第一'
),
1 => array(
'id' => 3,
'name' => '第三'
),
2 => array(
'id' => 2,
'name' => '第二'
),
3 => array(
'id' => 4,
'name' => '第四'
),
);
//解答
$new_list = list_sort_by($list, 'id', 'desc');
echo "<pre>";
var_dump($new_list);
相关文章推荐
- 阿里大鱼短信接口 for Thinkphp
- php开发安全规范
- swoole-1.7.18 版本已发布,支持 PHP7
- phpstudy www文件夹下面的项目文件夹名字不能为中文
- PHP 7安装使用体验,升级PHP要谨慎
- ThinkPHP项目笔记之RBAC(权限)下篇
- PHP里10个鲜为人知但却非常有用的函数
- PHP获取时间排除周六、周日的两个方法
- Lastpass——密码管理工具
- phpstorm 使用技巧总结
- vsftpd详解
- ubuntu安装php7.0.3遇到的问题
- PHP之数据分组
- PHP 设置调试工具XDebug PHPStorm IDE
- 解决 PHPExcel 长数字串显示为科学计数
- cgi、fast-cgi、php-fpm
- SCCM TP4部署前的Active Directory准备
- SCCM TP4部署前的Active Directory准备
- 自定义PHP的错误报告处理方式
- PHP快速排序