Correction status:Uncorrected
Teacher's comments:
作业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,不保持原来键名关联--更改了。
*/