PHP 正则表达式 数组
正则表达式
/斜杠代表定界符 ^代表匹配开头 $代表匹配结尾
preg_replace() 替换
1 $str = "abcde123fg455h"; 2 $reg = "/\d/"; //\d表示匹配数字 3 echo preg_replace($reg,"#",$str); //将字符串str按照正则表达式reg替换为#
preg_split() 拆分
1 $str = "ab5cde3fg5h"; 2 $reg = "/\d/"; 3 var_dump (preg_split($reg,$str)); //将字符串str按照正则表达式拆分
preg_match() 匹配字符串中满足正则表达式中第一个数据
1 $str = "ab5cde3fg5h"; 2 $reg = "/\d/"; 3 $arr=array(); 4 preg_match($reg,$str,$arr); //匹配字符串中满足正则表达式中第一个数据 5 var_dump($arr);
preg_match_all(); 匹配字符串中满足正则表达式的所有数据
1 $str = "ab5cde3fg5h"; 2 $reg = "/\d/"; 3 $arr=array(); 4 preg_match_all($reg,$str,$arr); //匹配字符串中满足正则表达式的所有数据 5 var_dump($arr);
数组
定义
1 //定义数组方式1 2 $arr =array(1,2,3,4,5); 3 var_dump($arr);
//定义方式2--赋值定义 $arr1[0] = 5; $arr1[1] = 6; var_dump($arr1);
数组的分类
1 //1.索引数组 2 $arr = array(1,2,3,4,5); 3 echo $arr[0];
1 //2.关联数组 2 $arr = array("one"=>5,"two"=>10); 3 echo $arr["two"];
php数组的特点:可以存储任意类型的数据,长度可以变化
数组的遍历
1.for循环遍历
1 //for循环遍历,不能遍历关联数组 2 for($i=0;$i<count($arr);$i++) 3 { 4 echo $arr[$i]."<br>"; 5 }
2.foreach遍历
1 //foreach 遍历 可以遍历关联数组 2 $arr = array("a"=>10,"b"=>20,"c"=>"hello","d"=>30); 3 foreach($arr as $value) //只取value值 4 { 5 echo $value."<br>"; 6 }
1 $arr = array("a"=>10,"b"=>20,"c"=>"hello","d"=>30); 2 foreach($arr as $key=>$value) //取key值和value值 3 { 4 echo $key."--".$value."<br>"; 5 }
3.each() 函数
//each() 函数 $arr = array("a"=>10,"b"=>20,"c"=>"hello","d"=>30); var_dump (each($arr)); //返回数组里面元素的key和value var_dump (each($arr)); //每次取完值向下走一个指向下一个值
4.list() 函数
1 //list()函数 2 $arr = array("a"=>10,"b"=>20,"c"=>"hello","d"=>30); 3 list($a,$b,$c,$d)=$arr; //将数组里面的值分配给list()函数里面的变量 4 echo $a;
5.each和list结合起来遍历数组
//each和list结合起来遍历数组 $arr = array("a"=>10,"b"=>20,"c"=>"hello","d"=>30); while(list($key,$value)=each($arr)) { echo "{$key}--{$value}<br>"; }
6.指针
1 //指针 2 $arr = array("aa","bb",5,5,"cc",10,10); 3 current($arr); //取当前指针指向位置的value值 4 key($arr); //取当前指针指向位置的key 5 next($arr); //将指针向下调 6 prev($arr); //将指针向上调 7 end($arr); //将指针调向最后一个 8 reset($arr);//将指针重置,指向第一个
用指针遍历数组
1 $arr = array("aa","bb",5,5,"cc",10,10); 2 do{ 3 echo key($arr)."--".current($arr)."<br>"; 4 } 5 while(next($arr))
$_GET $_POST 存储页面传过来的值
1 //常用函数 2 var_dump(in_array("ab",$arr)); //判断数组里面是否存在某个值 3 var_dump(array_reverse($arr)); //翻转数组 4 echo count($arr); //返回数组元素的个数 5 $attr = array_unique($arr); //去重 6 unset($attr[0]); //删除数组中的元素 7 var_dump(array_values($attr)); //重新索引 8 $attr = array(1,2,3,4); 9 var_dump(array_merge($arr,$attr)); //合并数组 10 array_push($arr,"dd"); //给数组追加一个元素 11 var_dump($arr);
二位数组
1 $attr = array( 2 array(1,2,3), 3 array(4,5,6), 4 array(7,8,9) 5 ); 6 var_dump($attr);
例:将数组中的内容以下拉列表的形式展现
1 $attr = array( 2 array('n001','汉族'), 3 array('n002','苗族'), 4 array('n003','回族'), 5 array('n004','维吾尔族') 6 ); 7 echo "<select>"; 8 foreach($attr as $value) 9 { 10 echo "<option value='{$value[0]}'>{$value[1]}</option>"; 11 } 12 echo "</select>";
例:将二维数组中的内容显示为一张表
1 $attr = array( 2 array('p001','张三','男','汉族'), 3 array('p002','李四','女','回族'), 4 array('p003','王五','男','汉族'), 5 array('p004','赵六','女','苗族') 6 ); 7 8 echo "<table width='100%' border='1' cellpadding='0' cellspacing='0'>"; 9 10 echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td></tr>"; 11 12 for($i=0;$i<count($attr);$i++) 13 { 14 echo "<tr><td>{$attr[$i][0]}</td><td>{$attr[$i][1]}</td><td>{$attr[$i][2]}</td><td>{$attr[$i][3]}</td></tr>"; 15 } 16 17 echo "</table>";