数组的排序
数组的排序主要是根据键名和值来进行升序或降序的排序,key:ksort、uksort、krsort
值:sort、rsort,usort,代码如下:
- 2.str_replace(), substr_replace() 替换字符串
实例
//1.升序 $arr = [23,34,11,55,66,22,1,4]; sort($arr);//返回布尔值 //var_dump(sort($arr)); echo var_export($arr,true),'<hr>'; //2.降序 $arr = [23,34,11,55,66,22,1,4]; rsort($arr); echo var_export($arr,true),'<hr>'; //3.回调 usort 参数里的回调函数只返回1,-1,0这3个值 $arr = [23,34,11,55,66,22,1,4,1]; usort($arr, function ($var1,$var2){ return $var1 >$var2 ? 1:-1; }); echo var_export($arr,true),'<hr>'; //usort 二维数组的排序 $stu = [ ['name'=>'林心如','grade'=>98], ['name'=>'范冰冰','grade'=>55], ['name'=>'左小青','grade'=>73], ]; usort($stu, function ($var1,$var2){ //return $var1['grade']>$var2['grade']? 1:-1; return strcmp($var1['grade'],$var2['grade']); //strcmp比较字符串的大小,先比较长度,再比较字符串大小,区分大小写 }); print_r($stu); echo '<hr>'; //根据键名进行排序ksort $lang = ['html'=>'标记语言','css'=>'样式表','js'=>'前端脚本','php'=>'后端脚本']; ksort($lang); echo var_export($lang),'<hr>'; $lang = ['html'=>'标记语言','css'=>'样式表','js'=>'前端脚本','php'=>'后端脚本']; krsort($lang); echo var_export($lang),'<hr>'; //根据键名的第二个字母进行排序 $lang = ['html'=>'标记语言','css'=>'样式表','js'=>'前端脚本','php'=>'后端脚本']; uksort($lang, function ($m , $n){ $a = substr($m,1,1);//substr()截取子字符串 $b = substr($n,1,1); return strcmp($a,$b); }); print_r($lang);
运行实例 »点击 "运行实例" 按钮查看在线实例
str_repalce可以替换整个字符串或部分字符串,而substr_replace的查找更加精确,要指定替换开始的位置以及替换的长度,默认会替换后面的整个部分。 代码如下:
3.substr(),strstr(),strpos() 查找字符串实例
//str_replace()/substr_replace() 替换 echo str_replace($str,'java',$str); echo '<hr>'; echo substr_replace($str,'was',4,2);
运行实例 »点击 "运行实例" 按钮查看在线实例
这三个函数都可以用来查找字符串,substr用来截取子字符串,strstr查找的是前面部分或者后面部分,而strspos则是查找字符串首次出现的位置。 代码如下:
总结:字符串的查找和替换都区分大小写的,并且不会影响原来的字符串。实例
//1.substr() 获取子字符串,字符串位置从0开始 $str = 'php is the best language'; echo substr($str,7,4),'<hr>'; //2.strstr()、strpos() //strstr:返回查找字符串到结尾,区分大小写,true就返回前面部分,不包括查找的字符串 echo strstr($str,'t',true),'<br>'; //strpos(): 查找首次出现的位置 echo strpos($str,'is'),'<hr>';
运行实例 »点击 "运行实例" 按钮查看在线实例