正则表达式:
1.定界符号 任何字符,一般用 //
2. 模式修正符i 写在定界符外面后面,可不区分大小写
3.preg_replace($reg,"#",$str) 将字符串中满足正则表达式的字符替换为#
4. preg_split($reg,$str) 将字符串分割
5.preg_match($reg,$str,$arr) 匹配第一个,成功返回true,匹配出来的的字符串放到数组$arr里
6.preg_match_all($reg,$str,$arr) 匹配所有
7.preg_grep($reg,$arr) 匹配数组里面满足的返回数组
例:
$s = "he8llo5wor6ld";
$s = preg_replace("/d/","#",$s); //按照正则表达式替换
$attr = preg_split("/d/",$s); //按照正则表达式拆分
$arr = array();//定义一个空的数组
preg_match("/d/",$s,$arr); //匹配满足正则的第一个字符串
preg_match_all("/d/",$s,$arr); //匹配所有满足正则的字符串
var_dump($arr);
数组:1:索引数组 2:遍历数组
a.数组定义
$array = array(1,2,3,4,5); 索引数组
$array = array(1=>"aa","bb"=>2); 关联数组
5.4版本后可以像其他语言一样声明数组
b.取值
$array[0]
$array["bb"]
c.预定义数组
global 声明为全局变量
$GLOBALS 引用全局作用域中可用的全局变量
$_SERVER 服务器和执行环境信息
$_ENV 环境变量
$_GET HTTP GET 变量
$_POST HTTP POST 变量
$_REQUEST HTTP Request 变量
$_FILES HTTP 文件上传变量
$_SESSION Session 变量
$_COOKIE HTTP Cookies
d.其它常用函数
in_array() 检查数组中是否存在某值
array_reverse() 将数组中的元素顺序翻转,创建新的数组并返回
count() 计算数组中的元素数目或对象中的属性个数
array_unique() 删除数组中重复的值并返回新的数组
unset($arr[0]) 删除数组的某个值
array_values($arr) 重新索引
array_merge() 合并数组
array_push() 在数组尾添加元素
1、索引数组
例:$attr=array(1,2,3,4,5);
print_r ($attr);
2、关联数组:取值用key(code) echo(attr["code"]);
例:$attr=array("code"=>101,"name"=>"张三","sex"=>"男");
print_r($attr);
3、遍历数组:最主要、最常见的是foreach遍历,因为索引和关联数组都可以遍历
①for循环遍历:适用于遍历索引数组,关联数组不能遍历
例:
$attr = array("aa","bb","cc","dd");
for($i=0;$i<count($attr);$i++)
{
echo $attr[$i]."<br>";
}
②foreach遍历:索引和关联都可以遍历 ★★★★
例1:
$attr = array("aa","bb","cc","dd");
foreach($attr as $v) //遍历数组$attr,把每个值value给定义的变量$v,$v就是数组里的每一个元素
{
echo $v."<br>";
}
例2:
$k $v
$attr=array("code"=>101,"name"="张三",sex=>"男",nation"=>"汉族);
foreach($attr as $k=>$v) //把数组的名称(code)赋值给$k,value给$v(101)
{
echo $k."随便给一个连接符号".$v."<br>";
}
效果如下:
③使用each()和list()结合遍历:取数组里面当前指针指向的位置,默认指针在第一个,用一下指针走到下一个
例:
1.$$attr=array("ee","aa","bb","cc","dd");
var_dump(each($attr)); //取数组里面当前指针指向的元素
var_dump(each($attr)); var_dump(each($attr));
效果如下:
2.
$$attr=array("ee","aa","bb","cc","dd");
list($a,$b,$c,$d)=$attr; //写在等号左边的,将数组里面的元素交给一组变量,数组必须是索引数组 $a就等于"aa" $b等于"bb"
例:
while(list($k,$v) = each($attr))
{
echo "{$k}-{$v}<br>";
}
效果图:
④使用指针遍历
1.current($attr); 取当前指针指向的元素的值
2.key($attr); 区当前指针指向的元素的key(索引)
3.next($attr); 将指针向后调一个
4.prev($attr); 将指针向前调一个
5.end($attr); 将指针调到最后
6.reset($attr); 将指针重置
例1:
$attr=array("aa","bb","cc","dd","ee");
while(next($attr))
{
echo key($attr);
echo current($attr);
}
效果图如下:
例2:
do{
echo current($attr);
echo key($attr);
}
while(next($attr))
效果图如下:
例1:
$attr = array(
array("n001","汉族"),
array("n002","回族"),
array("n003","满族"),
array("n004","维吾尔族")
);
echo "<select>";
echo"<option>民族</option>";
foreach($attr as $v)
{
echo "<option>{$v[1]}</option>";
} echo"</select>";
例2:
<body>
<?php
$attr = array(
array("n001","汉族"),
array("n002","回族"),
array("n003","满族"),
array("n004","维吾尔族")
);
?>
<select> <option>民族</option> <?php foreach($attr as $v) { echo "<option> {$v[1]}</option>"; } ?> </select>
</body>