批改状态:未批改
老师批语:
作业1;演示str_replace(), substr_replace()
<?php
/**
str_replace 和 substr_replace
* str_replace(search,replace,$str)
* substr_replace($str,replacement,start,lenght)
*/
// str_replace() str_ireplace()
$str1 = 'The biggest adventure you can take is to live the life of your dreams.';
echo str_replace('biggest','best',$str1),'<hr>';
echo str_replace('.','',$str1),'<hr>';
echo str_replace(['you','your'],['I','my'],$str1),'<hr>'; //结果好奇葩
//substr_replace()
$str = '2 礼物 热 li夫';
echo substr_replace($str1,$str,0),'<hr>'; //全部替换
echo substr_replace($str1,$str,strlen($str1)),'<hr>';//在尾部增加
echo substr_replace($str1,$str,3,8),'<hr>';//指定在那个位置,替换几个字符
echo substr_replace($str1,'1+1=2',12,0),'<hr>';//在指定位置插入点击 "运行实例" 按钮查看在线实例
总结:
* str_replace() 返回字符串或数组,搜索字符串,从左到右依次全部替换(或者指定被替换的次数count可选)
* substr_replace() 返回字符串或数组, 要指定替换的开始位置,替换的字符串个数
作业2:演示substr(),strstr(),strpos()函数
<?php /** 字符串的截取和查询 * sbustr($str,start,lenght):返回字符串 * strstr(str1,str2,bool)返回字符串 * strpos(str1,str2,start)返回字符首次出现的位置,int */ //substr () 根据start 位置截取字符串 $str1 = 'The biggest adventure you can take is to live the life of your dreams.'; $str2 = substr($str1,3,7); echo $str2,'<br>'; $str3 = substr($str1,-12 ); //从字符串的后面数,截取12个字符 echo $str3,'<hr>'; //strstr()// 根据某个字符截取该字符前/(含)后所有的字符 $str4 = 'My dream : live in the mountains'; $str5 = strstr($str4,':');//包好该字符串: echo $str5,'<br>'; $str6 = strstr($str4,':',true); //返回字符前的字符串 echo $str6,'<hr>'; //strpos 搜索字符或字符串首次出现的位置,返回其下标 echo strpos($str1,'a'); //返回a首次出现的位置;
点击 "运行实例" 按钮查看在线实例
总结:字符串可以看作字符的集合/数组,所以都会有下标
作业3:usort()二维数组的排序
<?php
/**
数组中的元素可以按字母或数字的顺序进行升序或降序的排序
* 数组有索引数组和关联数组之分,还有二维数组
* 常用的排序函数:
* sort():根据数组的值,升序排列
* rsort():根据数组的值,降序排列
* ksort():根据关联数组的键值,升序排列
* krsont():根据关联数组的键值,降序排列
* asort():根据关联数组的值,生序排列
* arsort():根据关联数组的值,降序排列
* usort($array,function()),根据用户自定义的函数进行排序,根据数值进行排序,但并不会保存关键字
* uasort() 排序将基于value
* uksort() 排序将基于关键字
*
*/
//索引数组的排序
echo '<pre>';
$arr1 = ['peter','jimmy','albert','core','amy'];
sort($arr1);
print_r($arr1);
echo '<hr>';
rsort($arr1);
print_r($arr1);
echo '<hr>';
//关联数组的排序
$arr2 = ['id'=>110,'name'=>'peter','sex'=>'meal','height'=>'175cm'];
ksort($arr2);
print_r($arr2);
echo '<hr>';
krsort($arr2);
print_r($arr2);
echo '<hr>';
asort($arr2);// //当字母和数字排序的时候,怎么换算的??
print_r($arr2);
echo '<hr>';
// usort()利用自定义函数回调处理特殊排序
$arr3 = [
['id'=>110,'name'=>'python'],
['id'=>119,'name'=>'html'],
['id'=>120,'name'=>'php']
];
function fun($a,$b){
return strcmp($a['name'],$b['name']);
}
usort($arr3,'fun');
print_r($arr3);
echo '<hr>';
/*
* usort($arr3,function($a,$b){
* return strcmp($a['name'],$b['name']);
*
* });
*/点击 "运行实例" 按钮查看在线实例
/*
* 总结:
* sort,rsort,ksort,krsort,asort,arsort,一般都是用于一维数组的排序,
* usort,uasort,uksort 用于2维数组,多维数组的用户自定义排序。自定义函数一定要有返回值(1.0.-1)
* sort,usort,usort,不保持原来键名关联--更改了。
*/
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号