您的位置:首页 > 编程语言 > PHP开发

PHP 正则表达式 数组

2016-04-25 16:05 603 查看
正则表达式
/斜杠代表定界符 ^代表匹配开头 $代表匹配结尾

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>";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: