首页 > 后端开发 > 正文

如何运用PHP函数usort实现自定义排序

2024-08-29 13:34:59 | 我爱编程网

最近经常有小伙伴私信询问如何运用PHP函数usort实现自定义排序相关的问题,今天,我爱编程网小编整理了以下内容,希望可以对大家有所帮助。

本文目录一览:

如何运用PHP函数usort实现自定义排序

用自己的语言说出php中数组的常用函数和用法?

array_filter : 过滤数组中的无效元素,可以使用回调函数过滤

array_map : 使用回调函数依次处理所有元素

implode: 将一维数组转为特定符号隔开的字符串,

explode:  将特定符号隔开的字符串转为一维数组

sort /ksort: 将数组进行升序排序 我爱编程网

array_unique: 将数组元素去重

array_values:  取数组的值,重新组成新数组

array_pop: 取数组末尾元素并删除(队列)

array_push:将一个元素插入数组末尾(队列)

array_sum:统计数组元素的和

array_column:将二维数组中的指定KEY取出组成一个一维数组

网页链接

如何运用PHP函数usort实现自定义排序

如何运用PHP函数usort实现自定义排序

usort(array,sorttype),
第一个参数规定要排序的数组。
第二个参数用户自定义的函数。

函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:
•如果 a = b, 返回 0
•如果 a > b, 返回 1
•如果 a < b, 返回 -1

如何运用PHP函数usort实现自定义排序

用PHP函数排学生成绩问题

我爱编程网(https://www.52biancheng.com)小编还为大家带来用PHP函数排学生成绩问题的相关内容。

<?php
/*
1.学生成绩0-59不及格,60-70 普通成绩 70-80 良好 80-90 优秀 90-100 优异。现在有三个学生a,b,c,成绩分别是50分 80分 95分,判断这三个学生分别属于哪类。

首先,各类别分数设定不严谨,正确应该为:0-59不及格,60-69普通,70-79良好,80-89优秀,90-100优异
*/

echo "学生a类型为:" . getLevel(50) . '<br />'; // 学生a,方便演示加了一个 <br /> 换行符
echo "学生b类型为:" . getLevel(80) . '<br />'; // 学生b,方便演示加了一个 <br /> 换行符
echo "学生c类型为:" . getLevel(95) . '<br />'; // 学生c,方便演示加了一个 <br /> 换行符

/*
2.班级有一百名学生,分数区间0-100分。随机生成一百位学生的成绩,学生名称S1-----S100,学生成绩0-59不及格,60-70 普通成绩, 70-80 良好, 80-90 优秀, 90-100 优异,然后判断该学生分数所在档次。

同样,各类别分数设定不严谨,正确应该为:0-59不及格,60-69普通,70-79良好,80-89优秀,90-100优异
*/

// 获取随机生成分数数组
$scores = getRandscore(100);
// 循环处理类型
foreach ($scores as $key => $value) {
echo "学生S{$key}分数为:" . $value . ",类型为:" . getLevel($value) . '<br />'; // 方便演示加了一个 <br /> 换行符
}


/* 定义自定义函数 */

/**
 * 随机生成分数
 * 
 * @param int $number 学生人数
 * @return array
 */
function getRandscore($number = 0) {
// 定义数组
$scores = array();
// FOR 循环
for ($i = 1; $i <= $number; $i++) {
$scores[$i] = rand(0, 100);
}
// 输出结果
return $scores;
}

/**
 * 按分数获取等级
 * 
 * @param int $score 分数
 * @return string
 */
function getLevel($score = 0) {
if ($score <= 0) {
$i = 1; // 如果小于或等于0分,直接设定为第一级别,不及格
} elseif ($score >= 100) {
$i = 5; // 如果大于等于100分,直接设定为最高级别,优异
} else {
// 定义等级分数线,格式 array(等级1 => array(当前级别最低分数,当前级别最高分数))
$_score = array('1' => array(0, 59), '2' => array(60, 69), '3' => array(70, 79), '4' => array(80, 89), '5' => array(90, 100));
// 其他分数进行FOR循环判断,$i 值为 1 - 5
for ($i = 1; $i < 6; $i++) {
if ($score >= $_score[$i][0] && $score <= $_score[$i][1]) {
break; //中断循环判断
}
}
}
// 定义等级文字
$_level = array( '1' => '不及格', '2' => '普通', '3' => '良好', '4' => '优秀', '5' => '优异');
// 输出结果
return $_level[$i] ? $_level[$i] : '其他';
}

以上就是我爱编程网小编整理的内容,想要了解更多相关资讯内容敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“如何运用PHP函数usort实现自定义排序”相关推荐