①. 需要排序的数组如下:
$array = array(
);
function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序
$arr_nums=$arr=array();
foreach($array as $k=$v){
$arr_nums[$k]=$v[$key];
}
if($order=='asc'){
asort($arr_nums);
}else{
arsort($arr_nums);
foreach($arr_nums as $k=$v){
$arr[$k]=$array[$k];
return $arr;
arr_sort($array,'price');
function?pSort($arr)
{
$TimeSort?=?array();
foreach?($arr?as?$key?=?$value)?{
$TimeSort[$key]?=?$value['age'];
asort($TimeSort);
$data?=?array();
foreach?($TimeSort?as?$key?=?$value)?{
$data[]?=?$arr[$key];
$i?=?0;
foreach?($arr?as?$k?=?$v)?{
$arr[$k]?=?$data[$i];
$i◆◆;
return?$arr;
主要部分,你也可以考虑用那个多为数组排序的那个函数,上面这个是我前几天自己写的,不知道在你这能用不
php
rsort($arr);
if($num0){
$arr_1=array(array("$arr[$a]","$num"));
$num_1 = array();
array_multisort( $num_1,SORT_DESC , $arr_1);
print_r($arr_1);
对二维数组排序,得用到array_multisort()
下面是从php手册摘出来的例子.具体请根据你的问题查阅手册.
=========
数据全都存放在名为 data 的数组中.这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc().
本例中将把 volume 降序排列,把 edition 升序排列.
现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,所以呢用以下代码来取得列,然后排序.
// 取得列的列表
foreach ($data as $key = $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
数据集合现在排好序了,结果如下:
volume | edition
-------◆--------
遇到这个要求的时候就不是 ORDER BY 能解决的问题了.所以呢翻看 PHP 手册查找到了如下方法,做此笔记.
废话少说,奉上代码,清单如下:
[php] view plain copy
/**
* 二维数组根据某个字段排序
* 功能:按照用户的年龄倒序排序
* @author ruxing.li
*/
$arrUsers = array(
array(
'id' = 1,
'name' = '张三',
),
'name' = '李四',
'name' = '王五',
'name' = '赵六',
'name' = '黄七',
$sort = array(
'direction' = 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' = 'age', //排序字段
$arrSort = array();
foreach($arrUsers AS $uniqid = $row){
foreach($row AS $key=$value){
$arrSort[$key][$uniqid] = $value;
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
var_dump($arrUsers);
/*
输出结果:
0 =
①. =
'id' = int 1
//先用array_column 多维数组按照纵向(列)取出
$date = array_column($arr, '0');
//上面得到的结果:array()
//再用array_multisort 结合array_column得到的结果对$arr进行排序
array_multisort($date,SORT_ASC,$arr);
以上就是土嘎嘎小编为大家整理的php的二维数组排序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!