导航:首页 > 编程语言 > php排序函数二维数组

php排序函数二维数组

发布时间:2023-09-11 11:31:12

php 根据某个字段对二维数组这个数组排序

试编写代码如下:

<?php
$array[] = array('id'=>1,'price'=>50);
$array[] = array('id'=>2,'price'=>70);
$array[] = array('id'=>3,'price'=>30);
$array[] = array('id'=>4,'price'=>20);

foreach ($array as $key=>$value){
$id[$key] = $value['id'];
$price[$key] = $value['price'];
}

array_multisort($price,SORT_NUMERIC,SORT_DESC,$id,SORT_STRING,SORT_ASC,$array);
echo '<pre>';
print_r($array);
echo '</pre>';
?>

运行结果:

Array
(
[0] => Array
(
[id] => 2
[price] => 70
)

[1] => Array
(
[id] => 1
[price] => 50
)

[2] => Array
(
[id] => 3
[price] => 30
)

[3] => Array
(
[id] => 4
[price] => 20
)

)

Ⅱ php二维数组自定义排序

functionpSort(&$arr)

{

$TimeSort=array();

foreach($arras$key=>$value){

$TimeSort[$key]=$value['age'];

}

asort($TimeSort);

$data=array();

foreach($TimeSortas$key=>$value){

$data[]=$arr[$key];

}

$i=0;

foreach($arras$k=>$v){

$arr[$k]=$data[$i];

$i++;

}

return$arr;

}

主要部分,你也可以考虑用那个多为数组排序的那个函数,上面这个是我前几天自己写的,不知道在你这能用不


Ⅲ php排序问题 二维数组排序

这种直接排序是ikending不行的,只能自己遍历用逻辑来实现

Ⅳ PHP关于二维数组排序的问题!求大神帮忙

我用的是冒泡算法,代码如下:

<?php
$arr=array(
array(
'id'=>1,
'num'=>3,
'time'=>1522131034
),
array(
'id'=>2,
'num'=>7,
'time'=>1522132034
),
array(
'id'=>3,
'num'=>7,
'time'=>1522133034
),
array(
'id'=>4,
'num'=>7,
'time'=>1522134034
),
array(
'id'=>5,
'num'=>10,
'time'=>1522135034
),
array(
'id'=>6,
'num'=>0,
'time'=>1522136034
)
);
$t=count($arr);
$tmp=array();
for($i=0;$i<$t;$i++)
{
for($j=$i+1;$j<$t;$j++)
{
if($arr[$i]['num']>$arr[$j]['num'])
{
$tmp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$tmp;
}elseif($arr[$i]['num']==$arr[$j]['num'])
{
if($arr[$i]['time']>$arr[$j]['time'])
{
$tmp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$tmp;
}
}
}
}
print_r($arr);
?>

Ⅳ thinkPHP二维数组排序

从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。
遇到这个要求的时候就不是 ORDER BY 能解决的问题了。因此翻看 PHP 手册查找到了如下方法,做此笔记。
废话少说,奉上代码,清单如下:
[php] view plain
<?php
/**
* 二维数组根据某个字段排序
* 功能:按照用户的年龄倒序排序
* @author ruxing.li
*/
header('Content-Type:text/html;Charset=utf-8');
$arrUsers = array(
array(
'id' => 1,
'name' => '张三',
'age' => 25,
),
array(
'id' => 2,
'name' => '李四',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'age' => 40,
),
array(
'id' => 4,
'name' => '赵六',
'age' => 31,
),
array(
'id' => 5,
'name' => '黄七',
'age' => 20,
),
);

$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_mp($arrUsers);

/*
输出结果:

array (size=5)
0 =>
array (size=3)
'id' => int 5
'name' => string '黄七' (length=6)
'age' => int 20
1 =>
array (size=3)
'id' => int 2
'name' => string '李四' (length=6)
'age' => int 23
2 =>
array (size=3)
'id' => int 1
'name' => string '张三' (length=6)
'age' => int 25
3 =>
array (size=3)
'id' => int 4
'name' => string '赵六' (length=6)
'age' => int 31
4 =>
array (size=3)
'id' => int 3
'name' => string '王五' (length=6)
'age' => int 40

*/

Ⅵ PHP中怎么根据二维数组中的子数组的某个元素进行排序

//先用array_column 多维数组按照纵向(列)取出
$date = array_column($arr, '0');
//上面得到的结果:array()
//再用array_multisort 结合array_column得到的结果对$arr进行排序
array_multisort($date,SORT_ASC,$arr);

阅读全文

与php排序函数二维数组相关的资料

热点内容
如何看见自己手机号安卓 浏览:118
香烟源码查询 浏览:774
台达文本编程软件 浏览:718
单片机烧写器使用视频 浏览:996
拍照哪个app比较好 浏览:132
dhcp服务器不能分配MAC地址 浏览:964
java伪随机数 浏览:128
涂色书怎么解压 浏览:465
三角形圆边编程 浏览:457
手机压缩文件怎么压缩到十兆以下 浏览:987
云主机云服务器品牌 浏览:345
安卓emulated文件夹如何打开 浏览:315
采用fifo页面置换算法是 浏览:194
如何上网代理服务器 浏览:593
Hro系统源码 浏览:847
宝库源码 浏览:342
路飞和熊排解压力 浏览:625
php定时更新 浏览:357
数控5轴编程培训一般多久 浏览:560
cadpdf图层 浏览:250