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 ...
随机推荐
- kali 安装火狐
转自:http://www.kali.org.cn/thread-21271-1-1.html 安装火狐浏览器 打开终端 第一步:apt-get remove iceweasel 第二步: echo ...
- Python实践:开篇
一.概述 Python实践 是应用Python解决实际问题的案例集合,这些案例中的Python应用通常 功能各异.大小不一. 该系列文章是本人应用Python的实践总结,会不定期更新. 二.目录 Py ...
- BZOJ1103 [POI2007]大都市meg(DFS序)
题目:一颗树,单边修改,链上查询..实际上链是根到结点的链.网上好像有其他做法,我的想法是这样的: 先不看修改,毫无疑问查询只是查询结点的深度:而修改一条边会有什么影响:影响是且只是以边上深度最深结点 ...
- 10个国内外jQuery的CDN性能大比拼
jQuery是前端开发最常见也是最流行的javascript库,如何去加载它才能使我们的项目性能更好以及问什么要用CDN?当用户访问自己的站点时从服务器加载文件,每个服务器同时只能下载2-4个文件,这 ...
- 使用HttpsURLConnection发送POST请求
重写X509TrustManager private static TrustManager myX509TrustManager = new X509TrustManager() { @Overri ...
- COJ979 WZJ的数据结构(负二十一)
试题描述 请你实现一个数据结构,完成这样的功能: 给你一个N个点的图,初始状态无边. 每次加入一条双向边(u,v,w),若加入后没有构成一棵生成树,输出“Not Yet”,否则输出当前最小生成树的权值 ...
- 泛型,动态创建List<T> (转摘)
第一种: static void Main() { object intList = MakeList(typeof(int), 1, 2, 3); ...
- Why NHibernate updates DB on commit of read-only transaction
http://www.zvolkov.com/clog/2009/07/09/why-nhibernate-updates-db-on-commit-of-read-only-transaction/ ...
- Qt Creator Shortcuts 快捷键大全
编号 快捷键 功能 1 Esc 切换到代码编辑状态 2 F1 查看帮助(选中某一类或函数,按下F1,出现帮助文档) 3 F2 在光标选中对象的声明和定义之间切换(和Ctrl+鼠标左键一样的效果,选中某 ...
- 8.0 Qweb 报表编写步骤
8.0 采用的是Qweb报表,摒弃了7.0中的RML报表. 1.首先在xml文件中注册一个报表: <report id="qweb_test_report" model=&q ...