2024-09-21 13:44:40 | 我爱编程网
array_splice()删除数组中的指定元
array_splice(数组名,从前往后删的个数,new一个数组的大小);没有第三参数也就没有返数组,没有第三个参数时,第二个参数的意义为从前往后保留几个
exp:
?php$my_array=array(//建立数组"hehe"="haha","A"="lu","lu"="ge");$new=array_splice($my_array,1,3);//使用array_splice(数组名,从前往后删的个数,new一个数组的大小);var_dump($new);?
结果:array(2){["A"]=string(2)"lu"["lu"]=string(2)"ge"}
2、foreach()数组的遍历
用法:foreach(数组as键名=键值)或foreach(数组as键值)
exp:
?php$my_array=array(//建立数组"hehe"="haha","A"="lu","lu"="ge");foreach($my_arrayas$key=$value){echo$key."=".$value."br/";}?
输出结果:
hehe=hahaA=lulu=ge
3、数组的排序
(1)sort()和rsort()按键值排序sort()从小到大,rsort()从大到小
sort()exp:
?php$my_array=array(1,2,3,6,7,8,9,4,5);//建立数组sort($my_array);foreach($my_arrayas$keys=$value){echo$keys."=".$value."br/";}?
输出结果:
0=11=22=33=44=55=66=77=88=9
rsort()exp:
?php$my_array=array(1,2,3,6,7,8,9,4,5);//建立数组rsort($my_array);foreach($my_arrayas$keys=$value){echo$keys."=".$value."br/";}?
输出结果:
0=91=82=73=64=55=46=37=28=1
(2).asort()和arsort()和上面的原理一样,不过不改变键名和键值的对应关系
exp:
?php$my_array=array(1,2,3,6,7,8,9,4,5);//建立数组asort($my_array);foreach($my_arrayas$keys=$value){echo$keys."=".$value."br/";}?
输出结果:
0=11=22=37=48=53=64=75=86=9
(3)ksort()和krsort()是按键名的大小排序
4.数组的数学类函数
array_sum()计算数组的所有键值的和count()计算元素的个数
exp:
?php$my_array=array(1,2,3,6,7,8,9,4,5);//建立数组echoarray_sum($my_array);?
输出结果:45
5.其他函数
array_unique()去除数组中的相同元素
in_array()检测一个值是否在数组中(返回true和false)
array_search()返回的是键或值,返回的是键值所对应的键名
shuffle()打乱原有的数组
?php$my_array=array(1,2,3,6,7,8,9,4,5,5,5,5);//建立数组array_unique($my_array);//去除数组中的相同元素var_dump($my_array);echo"br/";echoin_array(5,$my_array);echo"br/";$new=array_search(6,$my_array);//返回的是键值所对应的键名echo$new;?
输出结果:
array(12){[0]=int(1)[1]=int(2)[2]=int(3)[3]=int(6)[4]=int(7)[5]=int(8)[6]=int(9)[7]=int(4)[8]=int(5)[9]=int(5)[10]=int(5)[11]=int(5)}13
PHP面试题2--常用的数组函数一,数组操作的基本函数
1.数组的键名与值
??array_values($arr);?获得数组的值
??array_keys($arr);获得数组的键名
??array_flip($arr);数组的值与键名互换(如果有重复前面的会被后面的覆盖)
??in_array("apple",$arr);在数组中检索apple
??array_search("apple",$arr);在数组中检索apple,如果存在返回键名
??array_key_exists("apple",$arr);检索给定的键名是否存在数组中
??isset($arr["apple"]);检索给定的键名是否存在数组中
????array_unique()删除数组中的重复值
2.数组的内部指针
??current($arr);返回数组中的当前单元
??pos($arr);返回数组中的当前单元
??key($arr);返回数组中的当前单元的键名
??prev($arr);将数组中的内部指针倒回一位
??next($arr);将数组中的内部指针向前移动一位
??end($arr);?将数组中的内部指针指向最后一单元
??reset($arr);将数组中的内部指针指向第一单元
??each($arr);将返回数组当前元素的一个键/值的构造数组,并使数组指针向前移动一位
??list($key,$value)=each($arr);获得数组当前元素的键名和值
3.数组和变量之间的转换
??extract(array,extract_rules,prefix);函数从数组中将变量导入到当前符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
??compact(var1,var2...);创建一个包含变量名和它们的值的数组。任何没有变量名与之对应的字符串都被略过。
二,数组的分段和填充
1.数组的分段
??array_slice(array,start,length,preserve);返回数组中的选定部分。如果数组中有字符串键名,返回的数组将保留键名。
??array_splice(array1,start,length,array2);从数组中移除选定的元素,并用新元素取代它。函数返回被移除元素的数组,如果函数没有移除任何元素(length=0),则替代数组将从start参数的位置插入。不保留替代数组的键名。
2.数组的分割
??array_chunk(array,size,preserve_keys);把一个数组分割为新的数组块。
3.数组的填充
??array_pad(array,size,value);将指定数量的带有指定值的元素插入到数组。如果将size参数设置为负数,该函数会在原始数组之前插入新的元素。如果size参数小于原始数组的长度,该函数不会删除任何元素。
三,数组与栈
????array_push(array,value1,value2...);向数组尾部插入一个或多个元素。即使数组有字符串键名,添加的元素将是数字键名。
????array_pop(array);删除数组的最后一个元素。返回值是数组的最后一个值,即,被删除的元素值。如果数组为空,或者不是一个数组,将返回NULL。
四,数组和队列
??array_shift(array);用于删除数组中的第一个元素,并返回被删除的元素。如果键名是数字,所有的元素都将获得新的键名,从0开始,并以1递增。
??array_unshift(array,value1,value2,value3...);用于向数组插入新元素,新数组的值将被插入到数组的开头。数值键名将从0开始,以1递增。字符串键名将保持不变。
五,回调函数
????array_walk(array,myfunction,parameter...);将数组中的每个元素应用到用户自定义函数。在函数中,数组的键名和键值是参数。可以通过把用户自定义函数的第一个参数指定为引用:$value,来改变数组元素的值。
????array_map(myfunction,array1,array2,array3...);函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。myfunction可以为null 我爱编程网
????arrayarray_filter(array$array[,callable$callback[,int$flag=0]]);用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回true,则把输入数组中的当前键值返回给结果数组,数组键名保持不变。
????array_reduce(array,myfunction,initial);函数发送数组中的值到用户自定义函数,并返回一个字符串。如果数组是空的或者初始值未传递,该函数返回null。initial为可选,规定发送到函数处理的第一个值。
六,数组的计算
1.数组元素的求和
????array_sum(array);返回数组中的所有值的和
2.数组的合并
????array_merge(array1,array2,array3...);用于把一个或多个数组合并成一个数组。如果两个或更多个数组有相同的键名。则最后的数组会覆盖其他数组。如果向函数输入了一个数组,且键名是整数,则该函数会返回带有整数键名的新数组,其键名以0开始进行重新索引。
????array_merge_recursive(array1,array2,array3...);用于把一个或多个数组合并为一个数组,该函数与array_merge()函数之间的不同是在处理两个或多个数组元素有相同的键名的情况下,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。如果您仅仅向array_merge_recursive()函数输入一个数组,结果与array_merge()相同。
3.数组的差集
????array_diff(array1,array2,array3...);函数用于比较两个(或更多个)数组的值,并返回差集。该函数比较两个(或更多个)数组的值(key=value中的value),并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2或array3等等)中的值。
????array_diff_assoc(array1,array2,array3...);函数用于比较两个(或更多个)数组的键名和键值,并返回差集。该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2或array3等等)中的键名和键值。
4.数组的并集
array_intersect(array1,array2,array3...);函数用于比较两个(或更多个)数组的键值,并返回交集。该函数比较两个(或更多个)数组的键值,返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2或array3等等)中的键值。
array_intersect_assoc(array1,array2,array3...);函数用于比较两个(或更多个)数组的键名和键值,并返回交集。该函数比较两个(或更多个)数组的键名和键值,并返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2或array3等等)中的键名和键值。
七,数值的排序
array_multisort():?对多个数组或多维数组进行排序
sort():以升序对数组排序
rsort():以降序对数组排序
asort():根据值,以升序对关联数组进行排序
ksort():根据键,以升序对关联数组进行排序
arsort():根据值,以降序对关联数组进行排序
krsort():根据键,以降序对关联数组进行排序
资料参考:
PHP常用函数有哪些常用函数比较多
如:字符串处理函数,数组函数,日期函数,MySQL函数,文件系统函数,GD函数库等
我爱编程网(https://www.52biancheng.com)小编还为大家带来用PHP函数排学生成绩问题的相关内容。
<?php以上就是我爱编程网小编给大家带来的PHP的问题,编写一个程序对三个数按由小到大的顺序排列(php常用函数大全面试?)全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com
/*
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] : '其他';
}
2024-01-05 14:11:24
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01