批改状态:合格
老师批语:
一.数组的的排序
自然排序
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' => '标记语言', )点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号