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 ...
随机推荐
- CC2540开发板学习笔记(三)——外部中断
一.实验内容 通过外部中断方式依次按下按键S1控制LED1的亮灭 二.实验过程 1.电路原理图同上 2.中断的概念 比如说我们在执行main函数时,突然来了个指令.优先级比现在执行的main还高,那我 ...
- 把Chrome浏览器变成文本编辑器
CoderWall 分享的一个小技巧. 在浏览器地址栏中输入一行代码:data:text/html, <html contenteditable> ,回车即可把浏览器变临时编辑器. 按f1 ...
- mvc-4控制器和状态(2)
访问视图 常见地视图模式时一个视图对应一个控制器,视图包含一个id,通过id传入控制器:在视图之中的元素则使用class 这里会使用jquery的选择器,为了减少使用,可以设置一个专门用于存放选择器到 ...
- Bitnami Redmine安装和插件配置
公司要进行敏捷开发管理,最后选择Redmine作为管理工具. 而Redmine本身的安装非常麻烦,要安装mysql,ruby,redmine,apach. 显然这不是一个偷懒的人应该做的,最后找到Bi ...
- 状压DP POJ 2411 Mondriaan'sDream
题目传送门 /* 题意:一个h*w的矩阵(1<=h,w<=11),只能放1*2的模块,问完全覆盖的不同放发有多少种? 状态压缩DP第一道:dp[i][j] 代表第i行的j状态下的种数(状态 ...
- LightOJ1191 Bar Codes(DP)
题目大概是,二进制数可以看作是由几段连续的0和连续的1组成,问:n位没有前导0的 且 共用k段连续0/1组成的 且 连续0/1个数不超过m的二进制数有多少个. 用dp[n][k][m]表示问题 dp[ ...
- android studio ndk 调试
一: 先看看用 ndk-gdb 手动调试 这种方法只适用于手动编写 Android.mk 的情况,因为我们要手动 build debug 版本的 .so 文件.具体可以参考我的前一篇文章. 1 And ...
- css3中的几何图形shape研究
前言 估计大家在日常工作中都会用到css形状,但是目前天朝中使用到最多的估计就是圆(circle).椭圆(ellipse).各种三角形形状,但是你肯定很少看见过用几何图形或者多边图形.假如你不懂什么叫 ...
- TYVJ P1012 火柴棒等式 Label:枚举
背景 NOIP2008年提高组第二题 描述 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0-9的拼法 ...
- javascript第三弹——数组
什么是数组 数组是值的有序集合.每个值叫做元素,每个元素在数组中都有数字位置编号,也就是索引.JS中的数组是弱类型的,数组中可以含有不同类型的元素.数组元素甚至可以是对象或其它数组.数组的长度是动态的 ...