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 $attr = array(1,2,3,4,5);
foreach($attr as $k=>$v)
{
if($v == 3)
{
unset($attr[$k]);//删除一个元素或者删除一个变量,不能直接unset($v),因为遍历时是把数组里面的数字3复制给$v的,删除的是复制的,而不是数组里面的。
}
}
$attr = array_values($attr);//重新索引,删除数组元素里面的3以后,索引值变为0,1,3,4.重新索引后变为0,1,2,3。
var_dump($attr);
//在其它语言中,使用foreach遍历数组里面的元素时,不能在foreach里面删除或者添加元素。只有php里面可以。 (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="提交" />
</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.in_array( , );判断某一个值是不是在这个数组里面存在,括号里面有两个参数,第一个参数是是否存在的值,第二个参数是检查的数组。 2.array_reverse();翻转函数,括号里面写要翻转的数组。 3.array_unique();删除重复值,去重。 4.unset($attr[0]);删除数组里的某个值。 5.array_values();重新索引。一般和删除一起使用。 6.array_merge();合并数组,括号里面填写n个要合并的数组。 7.array_push();往数组里面添加一个值,添加位置在末尾。 数组例子 //取数组里面的内容做下拉列表
方法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>";
PHP数组(数组正则表达式、数组、预定义数组)的更多相关文章
- PHP数组——数组正则表达式、数组、预定义数组
正则表达式 1.替换 $s = "hello5world"; $s = preg_replace("/\d/","#",$s); echo ...
- php学习笔记 [预定义数组(超全局数组)]
<?php 预定义数组: * 自动全局变量---超全局数组 * * 1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据 * 2.这些数组比较特别 * 3.全局范围内自动生效,都可以直 ...
- PHP-自定义数组-预定义数组-自定义函数-预定义函数
(1)自定义数组 —— 项目中的重点 (2)PHP预定义数组 —— 重点&难点 (3)自定义函数 —— 了解 (4)PHP预定义函数 —— 项目中的重点 1.自定义数组 数组:array,一个 ...
- php的预定义数组
PHP预定义变量数组 1.$_SERVER 变量由Web服务器设定或者直接与当前的脚本的执行环境相关联 $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境 ...
- php 指针遍历、预定义数组和常用函数
<?php /*//定义 $attr = array(1,2,3); $attr[] = 1; $attr = array("one"=>"hello&quo ...
- PHP基础-PHP中预定义的超全局数组
预定义数组: 自动全局变量---超全局数组 1. 包含了来自WEB服务器,客户端,运行环境和用户输入的数据 2. 这些数组比较特别 3. 全局范围内自动生效,都可以直接使用这些数组 4. 用户不能自定 ...
- ES5基础之正则表达式02:范围类、预定义类和边界字符
1.范围类 //元字符 /* * 正则表达式由两种基本字符类型组成 * 1.原义文本字符:例如123abc * 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符 */ //常见特殊符号:. * ...
- JS正则表达式从入门到入土(4)—— 预定义类与边界
预定义类 正则表达式提供预定义类来匹配常见的字符类 字符 等价类 含义 . [^\r\n] 除了回车符和换行符以外的所有字符 \d [0-9] 数字字符 \D [^0-9] 非数字字符 \s [\t\ ...
- 6)PHP,预定义变量
预定义变量也叫超全局变量: :预定义变量又叫超全局变量,包括: $_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS, $_COOKIE, $_SESSION, . ...
随机推荐
- Word批量删除所有书签
Word中的书签功能可快速.准确定位文档中特定的位置,经常用于模板定制.文档产出等. 可一直以来,书签功能存在一个不便的操作,即无法批量删除,只能单个删除,操作极不友好. 解决方案 我用代码暂时还改变 ...
- ls(ll)排序问题
ls(ll)排序问题 1.按照时间倒叙排列—— -lnt ( LNT,大写备注区分一下) 2.安照时间正序排列—— -lrt (LRT) 3.按照文件名正序排序(默认的排序方式)—— -l 4.按照文 ...
- sed 多行处理详细总结
在正常情况下,sed将待处理的行读入模式空间,脚本中的命令就一条接着一条的对该行进行处理,直到脚本执行完毕,然后该行被输出,模式空间请空:然后重复刚才的动作,文件中的新的一行被读入,直到文件处理完备. ...
- 利用fstream进行文件拷贝测试
今天翻到一个早期写测试代码的目录,找到几个以前的测试代码,于是拿出来贴到博客中.(只是简单的测试,并不严谨.注意这里windows和linux的硬件环境不一样) 这一个是使用fstream进行文件拷贝 ...
- iostat查看linux硬盘IO性能
rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/swrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/sr/s: ...
- 【CLR】解析AppDomain
目录结构: contents structure [+] 什么是AppDomain 跨越AppDomain边界访问对象 按引用封送(Marshal-by-Reference) 按值封送(Marshal ...
- JS 判断object是否包含某个键
1. myObj.hasOwnProperty('myKey'); 2. if ('key' in myObj)
- mysql乱码问题解决办法
最近开发一下小项目,遇到了最常见的乱码问题. 1.数据库使用utf-8 utf-8_generic_ci编码,使用csv上传并导入数据,插入数据的时候出现了问题,有很大部分数据没有被导入,所以使用m ...
- 微信小程序跳转分析
对于路由的触发方式以及页面生命周期函数如下: 路由方式 触发时机 路由前页面 路由后页面 初始化 小程序打开的第一个页面 onLoad, onShow 打开新页面 调用 API wx.naviga ...
- makefile中的wildcard和notdir和patsubst
转自:https://blog.csdn.net/srw11/article/details/7516712 1.wildcard : 扩展通配符 2.notdir : 去除路径 3.patsubst ...