PHP正则表达式;数组:for()遍历、 foreach ()遍历、each()list()组合遍历;指针遍历
正则表达式:
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(","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>
PHP正则表达式;数组:for()遍历、 foreach ()遍历、each()list()组合遍历;指针遍历的更多相关文章
- JMeter 正则表达式提取器结合ForEach控制器遍历提取变量值
正则表达式提取器结合ForEach控制器遍历提取变量值 by:授客 QQ:1033553122 1. 需要解决的问题 使用正则提取器提取了一组变量值,需要在其它sampler中,循环引用组中的某几 ...
- 用数组指针遍历数组,FOR/FOREACH遍历数组
1. 用数组指针遍历一维数组 <?php header("Content-type:text/html;charset=utf-8"); /*用数组指针遍历一位数组的值*/ ...
- PHP 数组遍历 foreach 语法结构
foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未 ...
- [19/03/12-星期二] 数组_遍历(for-each)&复制&java.util.Arrays类
一.遍历 for-each即增强for循环,是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍历. //数组遍历 for-each public class Test_03 ...
- php 指针遍历、预定义数组和常用函数
<?php /*//定义 $attr = array(1,2,3); $attr[] = 1; $attr = array("one"=>"hello&quo ...
- Java Array数组 遍历 四种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date ...
- C:指针遍历二维数组
C 指针遍历二维数组 http://blog.csdn.net/lcxandsfy/article/details/55000033 C++ 字符串指针与字符串数组 https://www.cnblo ...
- Java数组使用以及foreach循环
Java数组使用以及foreach循环 二话不说,先甩一个简单的程序: final int NUM= 10; int[] arrays = new int[NUM]; System.out.print ...
- Java List集合 遍历 四种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.ArrayList; import java.util.List; /** * @A ...
随机推荐
- sql经典习题及其答案(纠正错误版)
--网上有好多这套题的答案,但是经过我的验证,有很多都是错的,误人子弟--这是我自己纠正以后的版本 然后呢如果我写的还有不对的欢迎批评指正!--(1)查询2006年以后(包括2006年)的投稿情况,列 ...
- 微信公众平台开发3:订阅事件subscribe处理
新用户关注微信公众平台,将产生一个订阅事件,即subscribe事件,默认代码中没有对这一事件进行相应处理. 在新用户关注公众平台后,可能想知道该平台提供了哪些功能,以及怎样使用该平台,通俗一点讲就是 ...
- mvc-2事件监听
现代浏览器都支持的事件 click dbclick mouseover mousemove mouseout focus blur change(表单输入框特有) submit(表单特有) addEv ...
- 模拟 ZOJ 3736 Pocket Cube
题目传送门 题意:魔方最多旋转n次,问最多能使多少面颜色相同 分析:6种状态(3种旋转方式*顺逆方向,其他对称的!),首先先打个表,然后很愉快的DFS.自己写的时候费劲脑汁,代码很长,还TLE了... ...
- HazelCast 的内存管理原理
As it is said in the recent article "Google: Taming the Long Latency Tail - When More Machines ...
- C#中 As 和强制转换的总结
1.1.1 摘要 C#是一门强类型语言,一般情况下,我们最好避免将一个类型强制转换为其他类型,但有些时候难免要进行类型转换. 先想想究竟哪些操作可以进行类型转换(先不考虑.NET提供的Parse),一 ...
- 不容易系列之(4)——考新郎[HDU2049]
不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- (转)Hbase shell 常用命令(1)
Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...
- BZOJ4143 [AMPPZ2014]The Lawyer
Description Byteasar要制订m天的会议计划,一共有n场会议,第i场会议开始于第d[i]天的第a[i]秒,结束于第d[i]天的第b[i]秒. 对于每一天,请找出这一天的两场会议i,j, ...
- shell条件与循环
一.if语句 if [expression] then elif[expression] then else fi 注 : expression前后要有空格:判断相等用 = 而不是 == : then ...