php正则&&数组

<?php
正则表达式
斜杠代表定界符 /^$/
$str = "abcde123fg456h";
$reg = "/d/";
preg_replace($reg,"#",$str);//将字符串str按照正则表达式reg替换
var_dump(preg_replace($reg,"#",$str));


$str="a1cd3fg6h";
$reg="/d/";
var_dump(preg_split($reg,$str))//将字符串按照正则表达式拆分


$str="a1b2cd3e";
$reg="/d/";
$arr=array();
preg_match($reg,$str,$arr);//匹配字符串中满足正则表达式的第一个数据


var_dump($arr);
preg_match_all($reg,$str,$arr);//匹配字符串中满足正则表达式的所有数据
var_dump($arr);

数组
$arr=array(1,2,3,4,5);//1.定义数组方式
var_dump($arr);


2.赋值定义
$arr1[0]=5;
$arr1[1]=6;
$arr1[2]=10;
var_dump($arr1);


数组分类
1.索引数组
$arr=array(1,2,3,4,5);
echo $arr[2];

2.关联数组
$arr=array("one"=>5,"two"=>10);
echo $arr["two"];
var_dump($arr["two"]);

php数组特点:可以存储任意类型的数据,数组长度是可以变化的

遍历数组
$arr=array("aa","bb",5,"cc",10);

1.for循环遍历,不能遍历关联数组,遍历索引数组
for($i=0;$i<count($arr);$i++)
{
echo $arr[$i]."<br />";}



2.foreach遍历 可以遍历关联数组
foreach(int a in $arr) c#中
$arr=array("a"=>10,"b"=>20,"c"=>"hello","d"=>30);
foreach($arr as $value)
{

echo $value."<br />";

}

foreach($arr as $key=>$value)
{
echo $key."--".$value."<br />";}   //遍历key和value

3.each()函数
$arr=array("a"=>"hello","b"=>"lily","c"=>"love you");
var_dump(each($arr));//返回数组里面元素的key和value,第一次取第一个,第二次取第二个……每次取完值向下走一个取下一个值

var_dump(each($arr));
var_dump(each($arr));


4.list()函数 很特别的一个函数,函数在左边
$arr=array(10,20,"hello",30);
list($a,$b,$c,$d)=$arr;//将数组里面的值分配给list函数里的变量,只能遍历索引数组
echo $a."<br>";
echo $b."<br>";
echo $c."<br>";
echo $d."<br>";


5.each()和list()结合起来遍历数组
$arr=array("a"=>"hello","b"=>"lily","c"=>"love you");

while(list($key,$value)=each($arr))
{
echo "{$key}--{$value}<br>";
}

6.指针
$arr=array("a"=>"hello","b"=>"lily","c"=>"love you");
var_dump(current($arr));//取当前指针指向位置的value值
next($arr);//将指针向下调一个
var_dump(next($arr));
echo key($arr);//取当前指针指向位置的key
var_dump(key($arr));
prev($arr);//将指针向上调一个
var_dump(prev($arr));
end($arr);//将指针调向最后一个
var_dump(end($arr));
reset($arr);//将指针重置
var_dump(reset($arr));


$arr=array("a"=>"hello","b"=>"lily","c"=>"love you");
while(next($arr))
{
echo key($arr)."--".current($arr)."<br />";
}  //next是从下一个也就是索引为1的开始,所以a"=>"hello"就会被漏掉,所以用do{}while(),先执行再条件


do{ echo key($arr)."--".current($arr)."<br />";}while(next($arr))

$_GET $_POST 存储页面传过来的值,form表单中method="POST"

var_dump($_SERVER);
var_dump($_POST["uid"]);//存储页面传递过来的变量值


var_dump($_GET[]);
$arr=array("aa","bb",5,5,"cc",10,10);
常用函数
var_dump(in_array("aa",$arr));//判断数组里面是否存在某个值


var_dump(array_reverse($arr));//翻转数组


echo count($arr);//返回数组元素个数


$attr=var_dump(array_unique($arr));//去重

unset($arr[0]); //删除数组中的元素


var_dump($arr);
$arr=array("aa","bb",5,5,"cc",10,10);
var_dump(array_unique($arr));

$attr=array_unique($arr);
var_dump(array_values($attr)); //重新索引


$attr = array(1,2,3,4);
$arr=array("aa","bb",5,5,"cc",10,10);
array_merge(shuzu1,shuzu2);//将多个数组合并成一个数组


array_push($arr,"dd"); //给数组追加一个元素

var_dump($arr);



二维数组
$arr=array(
array(1,2,3),
array(4,5,6),
array(7,8,9));
var_dump($arr);


例题 将二维数组以下拉列表的形式显示
$attr=array(
 array('001','汉族'),
 array('002','苗族'),
   array('003','回族'),
   array('004','维吾尔族'),

 );
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%',heght='400', 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>";

?>

<form action="zhengze.php" method="post">
<input type="text" name="uid"/>
<input type="submit",value="提交"/>

</form>
<?php
var_dump($_POST["uid"]);
?>

原文地址:https://www.cnblogs.com/nannan-0305/p/5433178.html