1、冒泡排序
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 冒泡排序 3 * @param $array 4 * @return string 5 */ 6 function bubble_sort($array) 7 { 8 if (empty($array)) { 9 return 'empty'; 10 } 11 $length = count($array); 12 for ($i = 0; $i < $length; $i++) { 13 for ($j = $length - 1; $j > 0; $j--) { 14 if ($array[$j] < $array[$j - 1]) { 15 $temp = $array[$j]; 16 $array[$j] = $array[$j - 1]; 17 $array[$j - 1] = $temp; 18 } 19 } 20 } 21 return $array; 22 }
2、计算字符串长度
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 计算字符串长度 (即PHP内置函数 strlen) 3 * @link http://php.net/manual/en/function.strlen.php 4 * @param $str 5 * @return int 6 */ 7 function strlen($str) 8 { 9 if ($str == '') { 10 return 0; 11 } 12 $count = 0; 13 while (1) { 14 if (isset($str{$count})) { 15 $count++; 16 continue; 17 } else { 18 break; 19 } 20 } 21 return $count; 22 }
3、截取字符串
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 截取字符串 (即PHP内置函数 substr) 3 * @link http://php.net/manual/en/function.substr.php 4 * @param $str 字符串 5 * @param $start 开始位置 start为负,从末端开始 6 * @param null $sublen 截取长度 sublen为负,从末端开始 7 * @return string|void 8 */ 9 function substr($str, $start, $sublen = null) 10 { 11 //字符串为空或者开始截取位置超过字符串长度,则返回空 12 if ($str == '' || $start >= strlen($str)) { 13 return false; 14 } 15 $substr = ''; 16 $length = strlen($str); 17 if ($sublen > 0) { 18 if ($start >= 0) { 19 for ($i = $start; $i < $start + $sublen; $i++) { 20 if (!isset($str{$i})) break; 21 $substr .= $str{$i}; 22 } 23 } else { 24 for ($i = $length + $start; $i < $length + $start + $sublen; $i++) { 25 if (!isset($str{$i})) break; 26 $substr .= $str{$i}; 27 } 28 } 29 }else { 30 if ($start >= 0) { 31 for ($i = $start; $i < $length + $sublen; $i++) { 32 $substr .= $str{$i}; 33 } 34 } else { 35 for ($i = $length + $start; $i < $length + $sublen; $i++) { 36 $substr .= $str{$i}; 37 } 38 } 39 } 40 return $substr; 41 }
4、字符串翻转
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 字符串翻转 (即PHP内置函数 strrev) 3 * @link http://php.net/manual/en/function.strrev.php 4 * @param $str 5 * @return string 6 */ 7 function strrev($str) 8 { 9 if ($str == '') return ''; 10 $rev_str = ''; 11 for ($i = (strlen($str) - 1); $i >= 0; $i--) { 12 $rev_str .= $str{$i}; 13 } 14 return $rev_str; 15 }
5、字符串比较
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 字符串比较 (即PHP内置函数 strcmp) 3 * Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal. 4 * @link http://php.net/manual/en/function.strcmp.php 5 * @param $arr1 6 * @param $arr2 7 * @return int 8 */ 9 function strcmp($arr1, $arr2) { 10 if (empty($arr1)) { 11 return -strlen($arr2); 12 } 13 if (empty($arr2)) { 14 return strlen($arr1); 15 } 16 for ($i = 0; $i < strlen($arr1); $i++) { 17 if ($arr1{$i} == $arr2{$i}) { 18 continue; 19 } else { 20 if ($arr1{$i} > $arr2{$i}) { 21 return 1; 22 } else { 23 return -1; 24 } 25 } 26 } 27 return 0; 28 }
6、查找字符串
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 查找字符串 (即PHP内置函数 strstr) 3 * @link http://php.net/manual/en/function.strstr.php 4 * @param $str 5 * @param $substr 6 * @param bool $before PHP 5.3新增参数,默认false,返回字符串剩余部分(从匹配点开始),true返回匹配点之前的字符串 7 * @return bool|string 8 */ 9 function strstr($str, $substr, $before = false) { 10 $m = strlen($str); 11 $n = strlen($substr); 12 if ($m < $n) return false; 13 for ($i = 0; $i < ($m - $n + 1); $i++) { 14 $sub = substr($str, $i, $n); 15 if (strcmp($substr, $sub) == 0) { 16 if ($before) { 17 return substr($str, 0, $i); 18 } else { 19 return substr($str, $i); 20 } 21 } 22 } 23 return false; 24 }
7、字符串替换
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /** 2 * 字符串替换 (即PHP内置函数str_replace) 3 * @link http://php.net/manual/en/function.str-replace.php 4 * @param $search 要查找的值 5 * @param $replace 要替换的值 6 * @param $subject 被搜索的字符串 7 * @return string 8 */ 9 function str_replace($search, $replace, $subject) { 10 if (strstr($subject, $search) != false) { 11 $m = strlen($subject); 12 $n = strlen($search); 13 $new_str = ''; 14 for ($i = 0; $i < $m; $i++) { 15 $new = substr($subject, $i, $n); 16 if (strcmp($new, $search) == 0) { 17 $new_str .= $replace; 18 $i += ($n - 1); 19 } else { 20 $new_str .= $subject{$i}; 21 } 22 } 23 return $new_str; 24 } else { 25 return $subject; 26 } 27 }