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 =array1,2,3,4,5);
3 var_dump$arr);
//定义方式2--赋值定义
$arr1[0] = 5;
$arr1[1] = 6;
var_dump$arr1);

数组的分类

1 //1.索引数组
2 $arr = array1,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);
whilelist$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 whilenext$arr))

$_GET $_POST 存储页面传过来的值

 1 //常用函数
 2 var_dumpin_array"ab",$arr)); //判断数组里面是否存在某个值
 3 var_dumparray_reverse$arr)); //翻转数组
 4 echo count$arr); //返回数组元素的个数
 5 $attr = array_unique$arr); //去重
 6 unset$attr[0]); //删除数组中的元素
 7 var_dumparray_values$attr)); //重新索引
 8 $attr = array1,2,3,4);
 9 var_dumparray_merge$arr,$attr)); //合并数组
10 array_push$arr,"dd"); //给数组追加一个元素
11 var_dump$arr);

二位数组

1 $attr = array
2     array1,2,3),
3     array4,5,6),
4     array7,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>";

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注