首页 > 代码库 > 10.23上午 PHP数组(数组正则表达式、数组、预定义数组)
10.23上午 PHP数组(数组正则表达式、数组、预定义数组)
正则表达式
1.替换
$s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo $s;
//输出结果为hello#world,数字被替换成了#。
//第一个数字是被替换的内容,"/\d/"表示正则表达式的数字。
//第二个参数是要用什么来替换。
//第三个参数是要操作的数组。
2.拆分
//$s = "hello5world"; //$attr = preg_split("/\d/",$s); //按照正则表达式拆分 //var_dump($arr);
//第一个参数是按照什么拆分,第二个参数是拆分哪个字符串。
3.匹配
//$s = "he8llo5wor6ld"; //$arr = array(); //preg_match("/\d/",$s,$arr); //匹配满足正则的第一个字符串,在这匹配出的是8(8)是字符串中的第一个数字。 //preg_match_all("/\d/",$s,$arr); //匹配所有满足正则的字符串,匹配出的是所有的数字(8、5、6)。 //第一个参数是按照什么匹配 //第二个参数是匹配的数组 //第三个参数是另一个数组,也可以是空的数组,匹配完以后的数组放在此数组中。
数组
1.数组定义
//$attr = array();//定义一个空的数组 //$attr = array(1,2,3,4);//定义一个有值的数组
2.赋值定义
/*$attr[0]="aa"; $attr[1]="bb"; echo $attr[1]; */
3.数组分类
(1)索引数组
/*$attr = array(1,2,3,4,5); print_r($attr);
(2)关联数组
//$attr = array("code"=>101,"name"=>"张三","sex"=>"男");//code=>101表示赋值.code可以成为key,101为name。 //print_r($attr); //echo $attr["name"];
4.遍历数组
(1)for循环遍历,只能遍历索引数组
//$attr = array("aa","bb","cc","dd"); /*for($i = 0;$i<count($attr);$i++) { echo $attr[$i]."<br>"; } */
(2)foreach遍历,关联和索引都可以遍历.
//$attr = array("aa","bb","cc","dd"); /*foreach($attr as $v) { echo $v."<br>"; }*/
//只能遍历出值
/*foreach($attr as $k=>$v) { echo $k."--".$v."<br>"; }*/
//可以遍历出key和value
(3)使用each()和list()结合遍历
//var_dump(each($attr));//取数组里面当前指针指向的元素. //list($a,$b,$c,$d)=$attr;//写在等号左边的将数组里面的元素交给一组变量,数组必须是索引数组。 //echo $c; /*list($k,$v) = each($attr); echo $k; echo $v;*/ /*while(list($k,$v) = each($attr)); { echo "{$k}--{$v}<br>"; }*/
(4)使用指针遍历
//var_dump(current($attr));//取当前指针指向的元素的值 //key($attr);//取当前指针指向的元素的key //next($attr);//将指针向后调一个 //prev($attr);//将指针向前调一个 //end($attr);//将指针向指向最后 //reset($attr);//将指针重置 /*var_dump(next($attr)); var_dump(next($attr)); var_dump(next($attr)); var_dump(next($attr));*/ /*while(next($attr)) { echo current($attr); echo key($attr); }*/ /*do { echo current($attr); echo key($attr); } while(next($attr)) */
预定义数组
1.$GLOBALS引用全局作用域中的全局变量
var_dump$GLOBALS()//$GLOBALS是一个数组,是系统自定义的,无法修改的,必须大写。代表全局变量的数组。
2.$_SERVER是服务器的信息
3.$_ENV代表环境变量
4.$_GET代表的是用户用_GET方式传递的数据
<body> <form action="test.php" method="get"> <input type="text" name="uid" /> <input type="text" name="pwd" /> <input type="submit" value="http://www.mamicode.com/提交" /> </form> </body>
//输入数据提交以后会显示提交的数据。var_dump($_get)可以获取提交的数据。
5.$_POST代表的是用户用post方式传递的数据
method的方式和获取的方式要对应。var_dump($_POST)
6.$_REQUEST也可以获取用户传递的数据。
$_REQUEST可以取GET方式传递的数据,也可以取POST方式传递的数据。但是一般不要用$_REQUEST,相对的不安全。
7.$_FILES;是关于表单提交文件的。
<form action="text.php" method="post" enctype="multipart/form-date">//提交文件时需要写上enctype属性,提交方式要用post
8.$_SESSION
会话控制,保存用户登录信息的机制。如果登录上一个页面以后一定的时间没有操作,刷新页面后会要求重新登录,这就是_SESSION的效果。它有一个固定的时间,过后登录信息会清除。_SESSION存储登录信息存储在服务器上。_SESSION的安全性会更好。
9.$_COOKIE
会话控制,保存用户登录信息的机制。如果登录上一个页面以后一定的时间没有操作,刷新页面后不需要重新登录,这就是_COOKIE的效果。_COOKIE存储登录信息存储在硬盘上。_COOKIE的安全性不如_SESSION。
数组例子
//取数组里面的内容做下拉列表
方法1:
$attr = array(//定义一个数组,用二维数组。 array("n001","汉族"), array("n002","回族"), array("n003","满族"), array("n004","维吾尔族") ); <select> <option>所有</option> <?php /*foreach($attr as $v) { echo "<option>{$v[1]}</option>"; }*/ ?> </select>
方法2:
$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>";
10.23上午 PHP数组(数组正则表达式、数组、预定义数组)