正则表达式

斜杠代表定界符 /^$/

$str = "好厉害18653378660了hi请勿嫁得好15165339515安徽dah矮冬瓜 拍行业大概啊好广东也欺负偶怕哈";
$reg = "/(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}/";//电话号码正则表达式

echo preg_replace($reg,"#",$str); //将字符串str按照正则表达式reg替换为#

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

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

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

var_dump($arr);

preg_match_all($reg,$str,$arr);
var_dump($arr);

数组
定义
$arr = array(1,2,3,4,5); //1.定义数组方式
2.赋值定义
$arr1[0] = 5;
$arr1[1] = 6;
var_dump($arr1);

数组分类

1.索引数组
$arr = array(1,2,3,4,5);
echo $arr[0];
2.关联数组
$arr = array("code"=>5,"name"=>10); 
echo $arr["code"];

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

$arr = array("aa","bb",5,5,"cc",10,10);
$arr = array("a"=>10,"b"=>20,"c"=>"hello","d"=>30);

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

2.foreach遍历,可以遍历关联数组

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

3.each()函数

var_dump(each($arr)); //返回数组里面元素的key和value

var_dump(each($arr)); //每次取完值向下走一个指向下一个值
4.list()函数
list($a,$b,$c,$d,$e) = $arr; //将数组里面的值分配给list函数里的变量
echo $d;

5.each()和list()结合起来遍历数组
while(list($key,$value) = each($arr))
{
echo "{$key}--{$value}<br>";
}

6.指针
var_dump(current($arr)); //取当前指针指向位置的value值
echo key($arr); //取当前指针指向位置的key
next($arr); //将指针向下调
prev($arr); //将指针向上调
end($arr); //将指针调向最后一个
reset($arr);//将指针重置,指向第一个

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

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

$_GET $_POST 存储页面传过来的值

常用函数
var_dump(in_array("ab",$arr)); //判断数组里面是否存在某个值
var_dump(array_reverse($arr)); //翻转数组
echo count($arr); //返回数组元素的个数
$attr = array_unique($arr); //去重

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

var_dump(array_values($attr)); //重新索引
$attr = array(1,2,3,4);
var_dump(array_merge($arr,$attr)); //合并数组
array_push($arr,"dd"); //给数组追加一个元素
var_dump($arr);

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

var_dump($attr);*/

例子
  $attr = array(
array('n001','汉族'),
array('n002','苗族'),
array('n003','回族'),
array('n004','维吾尔族')
);

将数组中的内容以一个下拉列表的形式显示
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%' 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>";

php 正则表达式 数组的更多相关文章

  1. JavaScript系列----正则表达式

    1.正则表达式 1.1.正则表达式的类型 正则表达式在JavaScript中,提供了一种内置的构造函数--RegExp. 正则表达式有三种匹配模式: g: 表示全局模式,即模式应用于所有的字符串,而非 ...

  2. shell脚本 字串截取 正则表达式

    字串处理 子串截取方法一:使用${}表达式格式:echo ${x:起始位置:长度}(起始位置编号从0开始,可省略) 方法二:使用expr substr格式:expr substr "$x&q ...

  3. angular源码分析:angular中入境检察官$sce

    一.ng-bing-html指令问题 需求:我需要将一个变量$scope.x = '<a href="http://www.cnblogs.com/web2-developer/&qu ...

  4. PHP笔记(PHP初级篇)

    学习完HTML和CSS后,终于要开始学习PHP啦!前面的铺垫只为后路的畅顺! PHP环境搭建: 企业中常用到的环境是:Linux+Apache+MySQL+PHP 学习环境是:Windows+Apac ...

  5. 9月java货车版速记

    运算符的优先级java自带的方法正则表达式数组和二维数组:数组遍历,填充数组,数组排序,复制数组,数组查询数组算法:冒泡,选择,反转,快速类和对象:封装,继承,多态,this关键字,抽象类和接口重写和 ...

  6. Mongodb基础知识----Mongodb权威指南阅读

    文档是Mongodb中数据的基本单元,类型关系型数据库中的行,每个文档都有一个键值唯一的键_id.集合可以看做拥有动态模式的表. Mongodb一个实例可以拥有多个相互独立的数据库. Mongodb区 ...

  7. webpack3.x基本配置与总结

    基本配置 1.开始之前,请确定你已经安装了当前 Node 的较新版本. 2.然后在文件夹根目录下执行以下命令初始化项目并全局安装webpack: 1.$ cnpm init // 初始化项目 2.$ ...

  8. 一种hyperscan API使用(1)

    hyperscan: 编译和安装:http://www.cnblogs.com/zzqcn/p/4900643.html 简单介绍:http://www.cnblogs.com/zzqcn/p/489 ...

  9. kong插件应用

    插件概述 插件之于kong,就像Spring中的aop功能.在请求到达kong之后,转发给后端应用之前,你可以应用kong自带的插件对请求进行处理,合法认证,限流控制,黑白名单校验,日志采集等等.同时 ...

随机推荐

  1. CodeForces 671A Recycling Bottles

    暴力. 每个人找到一个入口,也就是从回收站到这个入口走的路程由人的位置到入口的路程来替代. 因此,只要找两个人分别从哪里入口就可以了.注意:有可能只要一个人走,另一人不走. #pragma comme ...

  2. jmeter命令行运行-单节点

    jmeter有自己的GUI页面,但是当线程数很多或者现在有很多的测试场景都是基于linux下进行压测,这时我们可以使用jmeter的命令行方式来执行测试,该篇文章介绍jmeter单节点命令运行方式. ...

  3. flex属性值----弹性盒子布局

    里面的属性都 是在有display: flex的情况 下才生效. 兼容性写法:   display: -webkit-box; /*老版本语法: Safari, iOS, Android browse ...

  4. Intelli IDEA 使用教程

    1.怎样修改字体 File-Settings-color&Fonts-Fonts

  5. sqlite创建数据库并创建一个表

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  6. VMware安装Centos6.8设置ip无法远程连接问题

    今天使用VMware安装Centos6.8minimal版本再设置ip地址的时候遇到了一些麻烦,就是无法ping通Centos操作系统的配置的ip从而无法用Xshell远程连接上. 如何配置请看下面的 ...

  7. python变量与数据类型

    变量 什么是变量 所谓变量,指的是在程序运行过程中需要用到的中间结果,变量定义后,会占用一块内存开辟的空间地址,通过内存空间确保同一时间的唯一性. >>> print(id.__do ...

  8. JS跨域访问问题

    js跨域了. 只能给几个资料参考了:http://blog.csdn.net/lovingprince/article/details/2954675 http://www.kuqin.com/web ...

  9. webuploader问题

    pick里面的id,我理解就是有点选择器的意思,目前我的认知是不设置它就无法取文件操作: 然后,查看页面的时候发现,pick通过id选定的元素,被替换成了webuploader自定义的元素,表现是-- ...

  10. Spring 整合 Redis出现的一个Timeout方法找不到的问题

    直接说问题吧. 依赖包:jedis 2.9.0. spring-data-reids 1.4.1 提示:redis.clients.jedis.JedisShardInfo.setTimeout(I) ...