• php正则表达式和数组


    一、正则表达式

    1. “/”代表定界符,"^"代表起始符号,"$"代表结束符号
    
    $str1="abc123def45ghjk6789lou";
    
    $str2="abcde5fg2h6jkl";
    
    $reg="/d/";       //匹配一个数字
    
    2. echo preg_replace($reg,"#",$str1);   //将字符串str1按照正则表达式reg替换为#    
    
    输出:abc###def##ghjk####lou
    
    3. var_dump(preg_split($reg,$str2));  //将字符串str2按照正则表达式reg拆分,返回一个数组
    
    输出: array(4) { [0]=> string(5) "abcde" [1]=> string(2) "fg" [2]=> string(1) "h" [3]=> string(3) "jkl" }
    
    4. $str=" 接我去哦爱丽丝18953364666疯狂群卡里的书法13853369999家穷奇啊";
    
    $reg="/(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|170[0|5|7|8|9]|17[6|7|8]|18[0-9])d{8}/";   //手机号正则表达式
    
    $arr=array();
    
    preg_match($reg,$str,$arr);       //匹配字符串中满足正则表达式的第一个数据
    
    var_dump($arr);
    
    preg_match_all($reg,$str,$arr);  //匹配字符串中满足正则表达式的所有数据
    
    var_dump($arr); 

    二、数组

    1.定义数组:

    方式一: 标准array定义

    $arr=array(1,2,3,4,5);

    方式二: 赋值定义:

    $arr[0]=5;

    $arr[1]=6;

    var_dump($arr);

    2.分类:

    2.1 索引数组: 数组内只写value值,索引自动生成,根据索引数字取值

    $arr=array(1,2,3,4,5);

    echo $arr[0];

    2.2 关联数组: key => value,key与value一一对应,成对存在

    $arr=("one"=>5,"two"=>10);

    echo $arr["two"];

    注意: 关联数组关系更加清晰,key与value必须写全

    php数组特点: 可以存储任意类型数据,长度可以变化,特有关联数组

    3.遍历数组

    3.1 for循环遍历: 不能遍历关联数组

    $arr=array("aa","bb","cc",5,"d",10);

    $arr=array("a"=>10,"b"=>5,"c"=>"hello","d"=>20);

    for($i=0;$i<count($arr);$i++)
    
    {
      echo $arr[$i]."<br>";
    }

    3.2 foreach遍历: 可以遍历关联数组

    只取value值:

    foreach($arr as $value)
    {
      echo $value."<br>";
    }

    取key与value:

    foreach($arr as $key=>$value)
    {
      echo $key."--".$value."<br>";
    }

    3.3 each()函数

    var_dump(each($arr));    //返回数组里面元素的key和value

    var_dump(each($arr));    //每次取完值向下走一个,指向下一个值

    相当于指针,第一次取值,指针指向第一个元素,第二次取,指针指向第二个元素

    3.4 list()函数  比较特殊,出现在等号左边

    list($a,$b,$c,$d,$e) = $arr; //将数组里面的值分配给list函数里的变量,变量可以少写
    echo $d;

    each()和list()结合起来遍历数组 :   可以遍历关联数组

    while(list($key,$value)=each($arr))
    {
      echo "{$key}--{$value}<br>";
    }

    3.5 指针遍历  :  可以遍历关联数组

    var_dump(current($arr));    //取当前指针指向位置的value值
    
    echo key($arr);             //取当前指针指向位置的key
    
    next($arr);                 //将指针向下调
    
    echo $key($arr);
    
    prev($arr);                 //将指针往上调
    
    end($arr);                  //将指针调向最后一个
    
    reset($arr);                //将指针重置,指向第一个
    
    do{
        echo key($arr)."--".current($arr)."<br>";
    }
    while(next($arr))
    
    //
    while(next($arr))
    do{
        echo key($arr)."--".current($arr)."<br>";
    }
    //先执行next(),取不到第一个元素

    4.预定义数组

    global                 //声明为全局变量
    
    $GLOBALS               //引用全局作用域中可用的全局变量
    
    var_dump($_SERVER);    //服务器和执行环境信息
    
    var_dump($_ENV);       //环境变量
    
    var_dump($_GET);       //HTTP GET变量     存储页面传过来的值,可在地址栏中显示
    
    var_dump($_POST);      //HTTP POST变量    存储页面传过来的值
    
    $_REQUEST              //HTTP REQUEST变量
    
    $_FILES                //HTTP FILES变量
    
    $_SESSION              //SESSION变量
    
    $_COOKIE               //HTTP Cookies

    5.数组常用函数

    $arr=array("aa","bb","cc",5,"d",10);

    $arr=array("a"=>10,"b"=>5,"c"=>"hello","d"=>20);

    var_dump(in_array("aa",$arr));          //判断数组中是否存在某个值,若存在则返回true,否则返回false     可判断关联数组中的value值, 而不能判断key
    
    var_dump(array_reverse($arr));       //翻转数组    
    
    echo count($arr);                    //返回数组元素的个数     
    
    $attr=array_unique($arr);            //去重,返回一个新数组, 若为索引数组,则重复元素的索引也去掉了
    
    unset($arr[0]);||unset($arr["a"]);  //删除数组中的元素,根据索引或key
    
    var_dump(array_values($attr));      //重新索引, 关联数组中的key也变为索引
    
    $attr=(1,2,3,4);
    
    var_dump(array_merge($arr,$attr));   //合并数组,重新索引,关联数组的key不变
    
    array_push($arr,"dd");               //给数组追加一个元素     成为数组的最后一个元素

    6.二维数组

    $attr=array(

      array(1,2,3),

      array(4,5,6),

      array(7,8,9)

    );

    var_dump($attr);

    例1:

    $attr=array(

      array("n001","汉族"),

      array("n002","苗族"),

      array("n003","回族"),

      array("n004","维吾尔族")

    );

     1.1 将二维数组中的内容以下拉列表的形式显示:

    echo "<select>";
    foreach($attr as $value)
    {
      echo "<option value='{$value[0]}'>{$value[1]}</option>";
    }
    echo "</select>";

    1.2 将二维数组中的内容以div的形式显示:

    <style>
    .minzu{ width=100px; background-color:red; color:white; border:1px solid;}
    </style>
    <?php
    foreach($attr as $v)
    {
      echo "<div class='minzu'>{$v[0]},{$v[1]}</div>";
    }
    ?>

    例2:

    $attr = array(
      array('p001','张三','男','汉族'),
      array('p002','李四','女','回族'),
      array('p003','王五','男','汉族'),
      array('p004','赵六','女','苗族')
    );

    2.1 将二维数组的内容以表格形式显示

    echo "<table width='300' border='1' cellpadding='0' cellspacing='0'>";
    
    echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td></tr>";
    
    for($i=0;$i<count($attr);$i++)
    {
      echo "<tr><td>{$attr[$i][0]}</td><td>{$attr[$i][1]}</td><td>{$attr[$i][2]}</td><td>{$attr[$i][3]}</td></tr>";
    }
    echo "</table>";

    2.2 或者在表格中引用php代码:

    <table width='300' border='1' cellpadding='0' cellspacing='0'>
    <tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td></tr>
    <?php
    用for循环遍历数组
    /*
    for($i=0;$i<count($attr);$i++) { echo "<tr> <td>{$attr[$i][0]}</td> <td>{$attr[$i][1]}</td> <td>{$attr[$i][2]}</td> <td>{$attr[$i][3]}</td> </tr>"; }*/
    用foreach更简便一些:
    foreach($attr as $v) { echo "<tr> <td>{$v[0]}</td> <td>{$v[1]}</td> <td>{$v[2]}</td> <td>{$v[3]}</td> </tr>"; } ?> </table>

     

  • 相关阅读:
    影响一个UIView是否能正常显示的几个因素
    浅谈多进程多线程的选择
    Spring阅读方法
    数据库范式通俗解释
    MySQL学习笔记(二):MySQL数据类型汇总及选择参考
    MySQL学习笔记(一):SQL基础
    存储过程优缺点
    MySQL学习笔记(三):常用函数
    bzoj 3576[Hnoi2014]江南乐 sg函数+分块预处理
    bzoj 3166 [Heoi2013]Alo 可持久化Trie
  • 原文地址:https://www.cnblogs.com/xinghun/p/5449759.html
Copyright © 2020-2023  润新知