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 ...
随机推荐
- 使用java自带的定时任务ScheduledThreadPoolExecutor
ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类: JDK api里是这么说的: ThreadPoolExecutor,它可另行安排在给定的延迟后运行 ...
- 状压DP SGU 223 Little Kings
题目传送门 /* 题意:n*n的矩阵,放置k个king,要求king互相不能攻击,即一个king的8个方向都没有另外的king,求方案个数 状态压缩DP:dp[i][num[j]][s] 代表在第i行 ...
- CodeForces Round 195 Div2
A. Vasily the Bear and Triangletime limit per test1 secondmemory limit per test256 megabytesinputsta ...
- TYVJ P1015 公路乘车 &&洛谷 P1192 台阶问题 Label:dp
题目描述 有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式. 输入输出格式 输入格式: 输入文件的仅包含两个正整数N,K. 输出格式: 输入文件s ...
- POJ 3286 How many 0's?(数位DP)
题目链接 终于过了,边界让我wa了好几次,猥琐的用AC代码对拍,很无奈,用非常麻烦的方法.写一下,估计以后再碰到,肯定看不懂这是写的什么了. 以前做过,统计1和2的,统计0比1和2麻烦多了,有前导0的 ...
- Django 1.6.0 正式发布,大幅改进事务处理
Django 1.6.0 正式发布了,查看官方发行说明. 下载地址:Django-1.6.tar.gz ,也可通过 pip 安装: pip install Django==1.6 要求 Python ...
- jsoncpp代码实例
最近开始使用 jsoncpp,以前一直在使用cJSON,但是使用cJSON的时候经常会忘记free掉json的内存,结果造成了内存泄露,程序跑着跑着就崩溃了.所以最近把json转移到了jsoncpp上 ...
- web app
*********Modernizr作为开发HTML5必要的js工具************ Modernizr作为开发HTML5必要的js工具 *********字体大小设 rem********* ...
- 几个与时间相关的php的函数
这些函数很常用,但是不用的话,像我这样的初学者放下就记不清了,这时最好的办法就是去查文档,写一下印象会更深一些 1.时间戳函数strtotime():一个就是string to time(我自己这样理 ...
- fibonacci数列 java
public class Fibonacci { public static void main(String agrs[]) { ;j<=;j++) System.out.println(fo ...