刚刚开始转型学习PHP。
昨天布置了些作业,虽然对大家不是很有用,
就当做自己学习的笔记吧。
在这里我一共探究出5种方法来实现此功能,当然可能还有其他方法,如果有的望请教!!
都做了一遍也帮助自己记忆和总结,在些方法中我觉得比较普及的应该是strpos函数,效率上也比较可观(查看过帮助文档).
1 /**
2 *
3 * 判断数组中的字符串是否包含某个字符串,如果包含就从数组中移除。(方法一:使用strpos函数)
4 * @param unknown_type $arr
5 */
6 function f_test($arr){
7 foreach ($arr as $key => $val){
8 //strpos函数找到字符串里包含需要查找的字符就会返回在字符串的位置,否则就会返回false,因为0=flase,需要判断用等同和不等同判断
9 $pos = strpos($val, 'yzw');
10 if($pos!==false){
11 unset($arr[$key]);
12 continue;
13 }
14 }
15 print_r($arr);
16 }
17
18 /**
19 *
20 * 判断数组中的字符串是否包含某个字符串,如果包含就从数组中移除。(方法二:使用strstr函数)
21 * @param unknown_type $arr
22 */
23 function g_test($arr){
24 foreach ($arr as $key => $val){
25 //strstr函数找到字符串里包含需要查找的字符就会返回该字符后剩余的字符串,否则没找到就会返回fasle,因为0=false,需要判断用等同和不等同判断
26 $str = strstr($val,'yzw');
27 if ($str!==false){
28 unset($arr[$key]);
29 continue;
30 }
31 }
32 print_r($arr);
33 }
34
35 /**
36 *
37 * 判断数组中的字符串是否包含某个字符串,如果包含就从数组中移除。(方法三:使用preg_match函数)preg_match比ereg要强,
38 * 可支持贪婪模式和不贪婪模式,区分大小写可以在修饰符外加入i模式
39 * @param unknown_type $arr
40 */
41 function h_test($arr){
42 foreach ($arr as $key => $val){
43 //preg_match函数值或者变量匹配就会返回大于0,找不到会返回0
44 $var = preg_match('/yzw/i',$val);
45 if($var > 0){
46 unset($arr[$key]);
47 continue;
48 }
49 }
50 print_r($arr);
51 }
52
53 /**
54 *
55 * 判断数组中的字符串是否包含某个字符串,如果包含就从数组中移除。(方法四:使用ereg函数)ereg默认是贪婪模式不支持修饰符要不区分大小写,要换成eregi
56 * @param unknown_type $arr
57 */
58 function j_test($arr){
59 foreach ($arr as $key => $val){
60 $str = "(yzw|hyf)";
61 //eregi不区分大小写函数找到就大于0 找不到就返回FALSE
62 $bool = eregi($str, $val);
63 if($bool !== false){
64 unset($arr[$key]);
65 continue;
66 }
67 }
68 print_r($arr);
69 }
1 /**
2 *
3 * 判断数组中的字符串是否包含某个字符串,如果包含就从数组中移除。(方法五:使用array_filter函数和substr_count函数)
4 * @param unknown_type $arr
5 */
6 function k_test($arr){
7 //过滤数组中的元素
8 print_r(array_filter($arr),l_test);
9 }
10 function l_test($val){
11 //该方法是判定字符出现在指定变量中多少次,大于零就是包含,返回false就会过滤该数组元素.
12 if(substr_count($val, 'yzw')>0){
13 return false;
14 }else{
15 return true;
16 }
17 }