博主信息
博文 22
粉丝 0
评论 2
访问量 13210
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
常用字符串函数---2018年-8月-27日
Jerry-wang的博客
原创
802人浏览过

一.数组的的排序

    自然排序

实例

echo '<pre>';
//根据数组的值进行排序
//1. 升序
$arr = [45,90,22,10,3,18,33];
sort($arr); // 自然排序
echo var_export($arr),'<hr>';
//输出结果
array (
  0 => 3,
  1 => 10,
  2 => 18,
  3 => 22,
  4 => 33,
  5 => 45,
  6 => 90,
)

运行实例 »

点击 "运行实例" 按钮查看在线实例

降序

实例

//2. 降序
$arr = [45,90,22,10,3,18,33];
rsort($arr);
echo var_export($arr),'<hr>';
//输出结果
array (
  0 => 90,
  1 => 45,
  2 => 33,
  3 => 22,
  4 => 18,
  5 => 10,
  6 => 3,
)

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.usort($arr,function(){})回调函数

实例

echo '<pre>';
//根据数组的值进行排序
$arr = [45,90,22,10,3,18,33];
usort($arr, function($var1, $var2){
    $res = $var1 - $var2;
    switch ($res) {
        case ($res < 0):
//            return -1;
            return 1;  // 降序
            break;
        case ($res > 0):
//            return 1;
            return -1; // 降序
            break;
        case ($res == 0):
            return 0;
            break;
    }
});
echo var_export($arr),'<hr>';
//输出结果
array (
  0 => 90,
  1 => 45,
  2 => 33,
  3 => 22,
  4 => 18,
  5 => 10,
  6 => 3,
)

运行实例 »

点击 "运行实例" 按钮查看在线实例

二:多维数组的排序

    usort()多维数组的排序

实例

$stu = [
  ['name'=>'林心如','grade'=>98],
  ['name'=>'范冰冰','grade'=>55],
  ['name'=>'左小青','grade'=>73],
];
echo '排序之前:',var_export($stu,true),'<hr>';
//用户自定义排序规则
usort($stu, function ($m, $n) {
    //$m ,$n实际上还是一个数组
   return strcmp($m['grade'], $n['grade']);
});
echo '排序之后:',var_export($stu,true),'<hr>';

//输出结果是
排序之前:array ( 0 => array ( 'name' => '林心如', 'grade' => 98, ), 1 => array ( 'name' => '范冰冰', 'grade' => 55, ), 2 => array ( 'name' => '左小青', 'grade' => 73, ), )
排序之后:array ( 0 => array ( 'name' => '范冰冰', 'grade' => 55, ), 1 => array ( 'name' => '左小青', 'grade' => 73, ), 2 => array ( 'name' => '林心如', 'grade' => 98, ), )

运行实例 »

点击 "运行实例" 按钮查看在线实例


实例

//根据数组的键进行排序
$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
ksort($lang);//键的升序
echo var_export($lang),'<hr>';

$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
krsort($lang);//键的反序
echo var_export($lang),'<hr>';

//输出结果
array ( 'css' => '样式表', 'html' => '标记语言', 'javascript' => '前端脚本', 'php' => '后端脚本', )
array ( 'php' => '后端脚本', 'javascript' => '前端脚本', 'html' => '标记语言', 'css' => '样式表', )

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

//使用自定义的回调函数,对键名进行排序
// 根据键名的第二个字母进行排序
$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
uksort($lang, function($m, $n) {
    $a = substr($m,1,1 );
    $b = substr($n,1,1 );
    return strcmp($a, $b);
});
echo var_export($lang),'<hr>'; 

//输出结果
array ( 'javascript' => '前端脚本', 'php' => '后端脚本', 'css' => '样式表', 'html' => '标记语言', )

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学