腾讯网拥有:php的二维排列排序方法、中信金通、掌上巴士、云南移动、开心可乐读写等软件知识,以及电脑鼠标定点设备、趣味赚钱、顺广媒体、佳能lide220、口袋妖怪代码示例:$users=array(array ) (name )='Tom )、' age (=20 )、array () name )='jjdhj '、' age'=)。 希望根据age从小到大排序。 方法1,
php的二维排列如下。
代码示例:的副本
$users=array (
阵列(' name '=' Tom ',' age'=20 ) )。
,array('name'='jjdhj ',' age'=18 ) )。
、array('name'='jack ',' age'=22 ) )。
);
希望根据age从小到大排序。
方法1、使用array_multisort
提取age并存储在一维数组中,按照age按升序排列。
代码:
代码示例:的副本
$ages=array (;
Foreach($usersas$user ) {
$ages[]=$user['age'];
}
array_multisort($ages,SORT_ASC,$users );
运行后,$users是已排序的数组。 请试着印刷一下。
如果必须先按年龄的升序排列,然后再按名字的升序排列,则方法是相同的。 也就是说,提取多个名称数组,最后的排序方法是这样调用的。
代码示例:的副本
array_multisort($ages,SORT_ASC,$names,SORT_ASC,$users );
方法2、使用用户
此方法允许您定制更复杂的排序方法。
例如,名称的长度按降序排列。
代码示例:的副本
usort($users,function ) $a,$b ) {
$al=Strlen($a['name'];
$bl=Strlen($b['name'];
if($al==$bl ) )。
返回0;
返回($ al $ bl? -1 : 1;
);
虽然这里使用匿名函数,但如果需要,也可以单独提取。
其中$a、$b可以理解为$users数组下的元素,直接索引name值计算长度,比较长度即可。
我推荐第二种方法。 这是因为将排序内容提取到一维数组的步骤变少,排序方法更加灵活。
相关建议