发布于 2022-08-01 12:38:07 浏览 354
asort和arsort函数是对关联数组分别进行升序和降序处理。
型号:台式机
系统:win10
版本:php 5.6.21
案例
根据以下数组的mysort值进行排序
<?php
$arr = array(
array( "name"=>"张三", "mysort"=>1 ),
array( "name"=>"李四", "mysort"=>5 ),
array( "name"=>"王五", "mysort"=>3 )
);
asort($arr);
var_dump($arr);
?>
输出
array(3) {
[0]=> array(2) { ["name"]=> string(6) "张三" ["mysort"]=> int(1) }
[1]=> array(2) { ["name"]=> string(6) "李四" ["mysort"]=> int(5) }
[2]=> array(2) { ["name"]=> string(6) "王五" ["mysort"]=> int(3) }
}
从以上输出的情况来看,asort函数无法直接对关联数组按mysort值进行排序。
如需实现按mysort排序,思路是可以先取出mysort值和对应的键值做排序,最后通过键值重新获取数组。
<?php
$arr = array(
array( "name"=>"张三", "mysort"=>1 ),
array( "name"=>"李四", "mysort"=>5 ),
array( "name"=>"王五", "mysort"=>3 )
);
setSort();
var_dump($arr);
function setSort()
{
global $arr;
$myorder = array();
$cid = array();
foreach( $arr as $k=>$v )
{
$myorder[] = array('mysort'=>$v['mysort'],'key'=>$k);
}
asort($myorder); // 对$myorder 数组升序排序
foreach( $myorder as $k=>$v)
{
$cid[] = $arr[ $v['key'] ];
}
$arr = $cid;
}
?>
输出
array(3) {
[0]=> array(2) { ["name"]=> string(6) "张三" ["mysort"]=> int(1) }
[1]=> array(2) { ["name"]=> string(6) "王五" ["mysort"]=> int(3) }
[2]=> array(2) { ["name"]=> string(6) "李四" ["mysort"]=> int(5) }
}
asort()和arsort()
上一篇:怎么删除php数组中的某些值
下一篇:php怎么排序数组
CAD基础 发布于 2022-11-11 00:33:35 浏览 677
MYSQL 发布于 2022-11-11 00:30:44 浏览 492
EXCEL基础 发布于 2022-10-25 17:27:22 浏览 591
EXCEL基础 发布于 2022-10-25 17:16:35 浏览 403
EXCEL基础 发布于 2022-10-25 17:15:22 浏览 655
EXCEL基础 发布于 2022-10-25 17:11:02 浏览 574
PPT基础 发布于 2022-09-16 13:12:24 浏览 663
PHP基础 发布于 2022-08-16 16:28:34 浏览 399
EXCEL基础 发布于 2022-08-15 09:46:52 浏览 516
PHP基础 发布于 2022-08-13 03:20:06 浏览 402