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