1.字符串截取实例
<?php /** * 实例演示substr(),截取字符串 string substr ( string $string , int $start [, int $length ] ) * strstr(),strchr()返回一个字符串在另一个字符串中开始位置到结束的字符串 string strstr ( string $str, string $needle , bool $before_needle ) * strpos()函数 返回字符串在另一字符串中第一次出现的位置(对大小写敏感),常用在查找字符串 *相关函数: stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写) strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写) strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写) */ $arr = 'Keep on studying each, happy learning'; echo $arr,'<br>'; $arr1 = substr($arr,2,5); $arr2 = substr($arr,-8,-2); echo '<pre>',$arr1,'<br>'; echo '<pre>',$arr2,'<hr>'; $arr3= strstr($arr,'s'); echo $arr3,'<hr>'; $arr31= strstr($arr,'s',true); echo $arr31,'<hr>'; $arr4 = strpos($arr,'s',true); echo $arr4,'<br>'; echo strpos("You love php, I love php too!","php");
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.字符串替换实例
<?php /** * str_replace(), substr_replace() */ //1.str_replace() str_ireplace是str_replace的忽略大小写版本 子字符串替换 $bodytag = str_replace("PHP", "JAVA", "<span class='body'>PHP中文网</span>"); echo $bodytag,'<hr>'; $words = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); $words = str_replace($words,'',"Hello World of PHP"); echo $words.'<hr>'; $ctext = '好好学习,天天向上,每天进步一点点'; $re = ['好','天','上']; $rt = ['good','day','up']; //$ctext=str_replace($ctext,"$rt","$re"); $ctext = str_replace($re,$rt,$ctext); echo print_r($ctext,true),'<hr>'; //2.substr_replace() 替换字符串的子串,指定位置替换 //mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) /* * substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。 * string 输入字符串。 start 如果 start 为正数,替换将从 string 的 start 位置开始。 如果 start 为负数,替换将从 string 的倒数第 start 个位置开始。 length 如果设定了这个参数并且为正数,表示 string 中被替换的子字符串的长度。 如果设定为负数,它表示待替换的子字符串结尾处距离 string 末端的字符个数。 如果没有提供此参数,那么它默认为 strlen( string ) (字符串的长度)。 当然,如果 length 为 0,那么这个函数的功能为将 replacement 插入到 string 的 start 位置处。*/ $var = 'ABCDEFGH:/IJK223lMNRPQR/'; echo "$var<hr />\n"; echo strlen($var),'<hr>'; echo substr_replace($var,'abc',0),'<hr>'; echo substr_replace($var,'abc',0,-5),'<hr>'; echo substr_replace($var,'',5,5),'<hr>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.数组排序实例
<?php /* *数组排序 */ //$arr = [1,3,2,5,3,7,9,6,8]; //sort($arr); //echo '<pre>',var_export($arr),'<hr>'; //rsort($arr); //echo var_export($arr),'<hr>'; //usort() 通过用户自定义的比较函数对数组进行排序 $arr = [1,3,2,5,7,9,6,8]; usort($arr,function ($var1, $var2){ $rts = $var1 - $var2; switch ($rts){ case($rts < 0): return -1; break; case($rts>0): return 1; break; case ($rts == 0): return 0; break; } }); var_export($arr); echo '<hr>'; function my_sort($a,$b) { if ($a==$b) return 0; return ($a<$b) ? 1 : -1; } echo '<pre>'; $a=array(4,2,3,5,7,6,11,9,10); usort($a,"my_sort"); print_r($a); usort($a,function($c,$d){ if ($c == $d) return 0; return ($c<$d) ? -1 : 1; }); print_r($a); $sort=['one'=>['id'=>11,'name'=>'php'],'two'=>['id'=>2,'name'=>'css'],'three'=>['id'=>6,'name'=>'html'],'four'=>['id'=>4,'name'=>'javascript']]; print_r($sort); usort($sort,function ($a,$b){ if($a['id'] == $b['id']) return 0; return ($a['id'] < $b['id']) ? 1 : -1; }); echo print_r($sort,true),'<hr>'; usort($sort,function ($a,$b){ if($a['id'] == $b['id']) return 0; return ($a['id'] < $b['id']) ? -1 : 1; }); echo print_r($sort,true),'<hr>'; $sorta=['one'=>['id'=>11,'name'=>'php'],'two'=>['id'=>2,'name'=>'css'],'three'=>['id'=>6,'name'=>'html'],'four'=>['id'=>4,'name'=>'javascript']]; uksort($sorta, function($m, $n) { $a = substr($m['name'],1,1 ); $b = substr($n['name'],1,1 ); return strcmp($a, $b); }); echo '<p style="background:red">',print_r($sorta,true),'</p>'; $array[0] = array('key_a' => 'z', 'key_b' => 'c'); $array[1] = array('key_a' => 'x', 'key_b' => 'b'); $array[2] = array('key_a' => 'y', 'key_b' => 'a'); function build_sorter($key) { return function ($a, $b) use ($key) { return strnatcmp($a[$key], $b[$key]); }; } usort($array, build_sorter('key_b')); foreach ($array as $item) { echo $item['key_a'] . ', ' . $item['key_b'] . "\n"; } echo '<hr>'; usort($array, build_sorter('key_a')); foreach ($array as $item) { echo $item['key_a'] . ', ' . $item['key_b'] . "\n"; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
字符串的截取以及替换学习。
数组排序学习,根据值、键以及自定义排序。usort通过用户自定义的比较函数对数组进行排序还需要再多练习。