首页 > 编程知识 正文

冒泡排序php,zend_hash_sort

时间:2023-05-03 06:33:11 阅读:34692 作者:164

腾讯网拥有: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值计算长度,比较长度即可。

我推荐第二种方法。 这是因为将排序内容提取到一维数组的步骤变少,排序方法更加灵活。

相关建议

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。