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
- $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>";
例子2:二维数组遍历到表格
- $attr = array(
- array("code","name","民族","年龄"),
- array("001","张三","汉族","23"),
- array("002","李四","回族","34"),
- array("003","王五","维吾尔族","53"),
- array("004","宋六","壮族","26")
- );
- echo "<table border='1px'>";
- for($i=0;$i<count($attr);$i++)
- {
- echo "<tr>";
- for($j=0;$j<count($attr[$i]);$j++)
- {
- echo "<td>".$attr[$i][$j]."</td>";
- }
- echo "</tr>";
- }
- echo "</table>";
10月23日上午PHP数组的更多相关文章
- [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )
[分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...
- 2016年10月23日 星期日 --出埃及记 Exodus 19:7
2016年10月23日 星期日 --出埃及记 Exodus 19:7 So Moses went back and summoned the elders of the people and set ...
- Linux自用指令——2019年10月23日
1.ls ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ls -a 列出目录所有文件,包含以.开始的隐藏文件 ...
- 9月19日上午JavaScript数组
数组 一.定义 1.数组的文字定义 广义上说,数组是相同类型数据的集合.但是对于强类型语言和弱类型语言来说其特点是不一样的.强类型语言数组和集合有以下特点. 数组强类型语言:1.数组里面只能存放相同数 ...
- 10月30日上午MySQL数据库的修改(从网页上实现对数据库的更改)
从网页页面上对数据库进行更改,连接着之前做的增加.删除.查询. 1.先做一个修改页面 <body> <!--这个页面需要让用户看到一些数据,所以不是一个纯php页面,页面效果和增加页 ...
- 10月28日上午 PHP数据访问
1.建一个连接(连接PHP和MYSQL) $db = new MySQLi("localhost","root","666","t ...
- 2015年10月23日JS笔记
ECMAScript标准:JavaScript核心语法 微软:Jscript ECMAScript标准:一纸空文 JavaScript和JScritp都号称完全实现了 ECMAScript标准 W3C ...
- 10月25日上午PHP继承多态
概念:子类可以继承父类的一切 方法重写:在子类里面对父类的方法进行重写,实现自己独特的功能.特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类.override重写(子类对父类的重写) ...
- 10月24日上午PHP面向对象
面向对象 程序分为两种,一种是面向过程的,另一种是面向对象的.之前的学的都是面向过程的,按部就班的一步一步的按照顺序往下走. 面向对象: 1.什么叫做对象 一切皆为对象(一个对象由一组属性和有权对这些 ...
随机推荐
- 转 为什么文件存储要选用B+树这样的数据结构?
为什么文件存储要选用B+树这样的数据结构? "文件存储要选用B+树这样的数据结构"--没记错的话,这是严蔚敏那本数据结构书上的一句结论.不知道是我没细看还是她没细讲,反正当时纯粹应 ...
- android file path
问题 出现的异常为:java.lang.IllegalArgumentException: File /mnt/sdcard/crazyit.bin contains a pathseparator. ...
- iOS不得姐项目--TabBar的重复点击实现当前模块刷新;状态栏点击实现当前模块回滚到最顶部
一.实现功能:重复点击tabBar,刷新当前TableView,其余不受影响 <1>实现思路: 错误的方法: TabBar成为自己的代理,监听自己的点击--这种方法是不可取的,如果外面设置 ...
- git 最常用命令
新建分支 git branch a #分支名称为a 切换到develop分支 git checkout a 新建分支并切换 git checkout -b a 推送到远程分支 git push ori ...
- mysql之旅【第二篇】
创建,修改和删除表 1,创建表: create table 表名(属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束 ...
- linux-查看系统是32位还是64位
可以用命令“getconf LONG_BIT”查看, 如果返回的结果是32则说明是32位,返回的结果是64则说明是64位. 此外还可以使用命令“uname -a”查看, 输出的结果中,如果有x86_6 ...
- git初体验(五)SSH的理解
一.SSH SSH是Secure shell的缩写,即"安全外壳协议",专为远程登录会话和其他网络服务提供安全性的协议,是一项计算机上的安全协议. 传统的网络服务程序,如rsh.F ...
- 如何在HTMl网页中插入百度地图
方法/步骤 1.打开"百度地图生成器"的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 如下图: 2.在"1 ...
- cocoaPod的使用
因为准备在项目中使用bootstrap,在安装bootstrap过程中提示需要Ruby的版本在1.9.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7.所以需要对Ruby进行升级.这里使用 ...
- 关于IOS显示图片的一些注意事项
1.-568h 的图片只能在def.png显示,其他的都不支持. 2.在加载图片到Images.xcassets里面的时候,如果图片下面出现Unassigned这个时候这个图片就不能用,得拿到Imag ...