正则表达式:
    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()组合遍历;指针遍历的更多相关文章

  1. JMeter 正则表达式提取器结合ForEach控制器遍历提取变量值

    正则表达式提取器结合ForEach控制器遍历提取变量值   by:授客 QQ:1033553122 1. 需要解决的问题 使用正则提取器提取了一组变量值,需要在其它sampler中,循环引用组中的某几 ...

  2. 用数组指针遍历数组,FOR/FOREACH遍历数组

    1. 用数组指针遍历一维数组 <?php header("Content-type:text/html;charset=utf-8"); /*用数组指针遍历一位数组的值*/ ...

  3. PHP 数组遍历 foreach 语法结构

    foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未 ...

  4. [19/03/12-星期二] 数组_遍历(for-each)&复制&java.util.Arrays类

    一.遍历 for-each即增强for循环,是JDK1.5新增加的功能,专门用于读取数组或集合中所有的元素,即对数组进行遍历. //数组遍历 for-each public class Test_03 ...

  5. php 指针遍历、预定义数组和常用函数

    <?php /*//定义 $attr = array(1,2,3); $attr[] = 1; $attr = array("one"=>"hello&quo ...

  6. Java Array数组 遍历 四种方式(包含 Lambda 表达式遍历)

    示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date ...

  7. C:指针遍历二维数组

    C 指针遍历二维数组 http://blog.csdn.net/lcxandsfy/article/details/55000033 C++ 字符串指针与字符串数组 https://www.cnblo ...

  8. Java数组使用以及foreach循环

    Java数组使用以及foreach循环 二话不说,先甩一个简单的程序: final int NUM= 10; int[] arrays = new int[NUM]; System.out.print ...

  9. Java List集合 遍历 四种方式(包含 Lambda 表达式遍历)

    示例代码如下: package com.miracle.luna.lambda; import java.util.ArrayList; import java.util.List; /** * @A ...

随机推荐

  1. msconfig设置调试开启 关闭 操作注册表项是

    经过测试   9dea862c-5cdd-4e70-acc1-f32b644d4795  这个项每个系统都是固定的.这个项里面的  Elements 里面项也是固定的.在 24000001 项里的 E ...

  2. Spring的bean标签

    Spring框架中主要有四种标签bean.alias.import.beans,其中bean标签是其他标签的基础. 一.bean标签的属性 scope:用来配置spring bean的作用域 sing ...

  3. mvc-4控制器和状态(2)

    访问视图 常见地视图模式时一个视图对应一个控制器,视图包含一个id,通过id传入控制器:在视图之中的元素则使用class 这里会使用jquery的选择器,为了减少使用,可以设置一个专门用于存放选择器到 ...

  4. HTML-meta

    设置meta: 默认下移动设备浏览器会像PC浏览器一样显示页面,这种时候需要进行设备宽度设置:一般情况下设置为: <meta name='viewport' content='width=dev ...

  5. SPOJ839 Optimal Marks(最小割)

    题目大概说给一张图,每个点都有权,边的权等于其两端点权的异或和,现已知几个点的权,为了使所有边的边权和最小,其他点的权值该是多少. 很有意思的一道题,完全看不出和网络流有什么关系. 考虑每个未知的点$ ...

  6. SplendidCRM 如何添加及使用中文语言包

    SplendidCRM 功能很强大,也支持多国语言,但关于中文语言安装的介绍在网上一直都找到,自已摸索了一下,成功使SplendidCRM应用中文,以下是安装方法. 版本号:SplendidCRM 7 ...

  7. BZOJ4298 : [ONTAK2015]Bajtocja

    设f[i][j]为第i张图中j点所在连通块的编号,加边时可以通过启发式合并在$O(dn\log n)$的时间内维护出来. 对于每个点,设h[i]为f[j][i]的hash值,若两个点hash值相等,则 ...

  8. BZOJ3939 : [Usaco2015 Feb]Cow Hopscotch

    设f[i][j]表示到(i,j)的方案数,则有 $f[i][j]=\sum f[x][y](x<i,y<j,a[x][y]!=a[i][j])=\sum f[x][y](x<i,y& ...

  9. TYVJ P1045 &&洛谷 1388 最大的算式 Label:dp

    描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大.因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号.例 ...

  10. 【BZOJ】1089: [SCOI2003]严格n元树(递推+高精度/fft)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1089 题意:求深度为d的n元树数目.(0<n<=32, 0<=d<=16) ...