一、正则表达式:

1. "/"代表界定符, "^"代表开始符号 "&"结束符号

eg:   $reg="/(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}/";     //手机号码表达式

$str="只鹅历18654434572史kdkjfhkj独守空房农家13574382098肥fvhhfvhh";

echo preg_replace($reg,"#",$str);             //将字符串$str按照正则表达式$reg替换成#

答案显示为:只鹅历#史kdkjfhkj独守空房农家#肥fvhhfvhh
2.     echo preg_split($reg,$str); //将字符串按照正则表达式拆分

3.     preg_match($reg,$str,$arr); //匹配字符串中满足正则表达式的第一个数据
        var_dump($arr);
        preg_match_all($reg,$str,$arr); //匹配字符串中满足正则表达式的所有数据
        var_dump($arr);

二、数组:

1.  定义:

定义方式一:简单定义
               $arr = array(1,2,3,4,5);
定义方式二:赋值定义:
               $arr1[0]=1;
               $arr1[1]=2;
               var_dump($arr1);

2.分类:分为两类

2.1  索引数组:
$arr=array(1,2,3,4,5);
echo $arr[0];
   2.2  关联数组:
$arr=array("one"=>5,"two"=>10);
echo $arr["two"];

php数组特点:里面可以存储任意类型的数据;长度可以变化;

3. 遍历数组:
$arr = array("aa","bb","cc",5,"dd",10);
$arr = array ("a"=>10,"b"=>20,"c"=>"hello");
    3.1 for循环遍历:不能遍历关联数组

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

3.2  foreach 遍历:可以遍历关联数组
foreach($arr as $value)
{
echo $value."<br>";
}

foreach ($arr as $key=>$value) //遍历key和对应数值
{
echo $key."--".$value."<br>";
}

3.3  each()函数:
     $arr = array ("a"=>10,"b"=>20,"c"=>"hello");

var_dump(each($arr));  //返回数组的key和value值 第一次返回第一组数值

var_dump(each($arr));  //第二次返回第二组数值

var_dump(each($arr));  //第三次返回第三组数值

3.4  list()函数:  出现在等号左边,十分特殊,只能遍历索引数组
    $arr = array("aa","bb","cc",5,"dd",10);
    list($a,$b,$c)=$arr;
    echo $a; //将数组里的值分配给list函数里的变量

each()和list()结合起来遍历数组:

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

3.5  使用指针遍历数组:
   echo current($arr);      //取当前指针指向位置的value值
   echo key($arr);           //取当前指针指向位置的key值
   echo next($arr);         //将指针向下调
   echo prev($arr);         //将指针往上调
   echo end($arr);          //将指针指向最后位置
   echo reset($arr);        //将指针重置,也就是指向第一个

a.  while(next($arr))
{
echo key($arr)."--".current($arr)."<br>";   //第一个索引[0]无法显示
}

b.  do
{
echo key($arr)."--".current($arr)."<br>";
}
while(next($arr))

4.  预定义数组:
    var_dump($_SERVER);
    var_dump($_ENV);
    var_dump($_GET); //存放传过来的值 get,post
    var_dump($_POST);
    $_REQUEST;
    $_FILES; //处理文件
    $_SESSION;
    $_COOKIE;

5.  数组常用函数:

$arr = array("aa","bb","cc",5,5,"dd",10);
5.1 var_dump(in_array("ff",$arr));  //判断数组中有没有“aa”的值   判断数组中有是否存在某个值
5.2 var_dump(array_reverse($arr);  //翻转数组
5.3 var_dump(count($arr);   //返回数组的长度,个数
5.4 $a= array_unique($arr);   //把数组里重复的值去掉,但索引号也没
      var_dump($a);
5.5  var_dump(array_values($a));  //重新索引,去重或删除后可重新索引

5.5  unset($arr[0]);   //删除数组中的某一个元素
       var_dump($arr);
5.6  array_push($arr,"ee");  //添加元素 在数组$arr中添加元素"aa"
       var_dump($arr);

5.7  $a=array(a,b);
       $b=array(1,2);
       $c=array_merge($a,$b);  //合并数组
       var_dump($c);

6.   二维数组:
     6.1 定义:
$attr=array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);

6.2 例子:

例子一:

$attr=array(
array("n001",汉族),
array("n002",苗族),
array("n003",回族),
array("n004",维吾尔族)
);
   1. 将数组中的内容以下拉列表的形式表示:
echo "<select>";
foreach ($attr as $value)
{
echo "<option value='($value[0])'>($value[1])</option>";
}
echo "</select>";

2. 以div形式表示:

foreach($arr as $value)
{
echo "<div class='{$value[0]}'>{$value[1]}</div>";
}

例子二:

将二维数组中的内容显示为表格:

$arr=array(
array("p001","张丽","女","汉族"),
array("p002","赵军","男","汉族"),
array("p003","王文","女","回族"),
array("p004","张越","男","汉族"),
array("p005","李玉","女","苗族"),
);

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

php基础之三 数组的更多相关文章

  1. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  2. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

  3. PHP基础 之 数组(一)

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  4. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  5. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  6. OC基础 可变数组与不可变数组的使用

    OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...

  7. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  8. Go语言基础之数组

    Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...

  9. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

随机推荐

  1. 重定位表 IMAGE_BASE_RELOCATION

    typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD TypeOffset[ ...

  2. 复杂事件处理引擎—Esper参考(事件部分)

    声明:Esper官方未提供中文文档,以后更新的大部分内容,均来自官方文档.本人英语小白一枚,翻译内容仅供参考.有些翻译确实不忍直视,君可略过. (有人可能会说,翻译的不好不如不翻,可能会误人子弟:不过 ...

  3. 配置android开发环境eclipse获取ADT获取不到

    在安装完Android SDK后eclipse要获取ADT, 可是由于GFW的存在, eclipse经常无法从http://dl-ssl.google.com/android/eclipse 获取到任 ...

  4. 正在搞用web.py做的通讯录

    正在搞用web.py做的通讯录,应该算是学习吧,学习那个web.py的应用框架,其实已经搞起来了,可以增删改数据了,查询还没可以用,现在正在搞登录认证的问题,久没用python, 但再上手后半小时就有 ...

  5. 转:fopen与open可以转换吗

    绝对不可以.fopen是C运行库级别的函数,而open是system call的wrapper routine.fopen返回FILE *的指针,这个结构本身维护着一些关于这个文件的信息,而open返 ...

  6. RAILS 4 ON RUBY的AJAX实现过程

    XXX,最近在笨手笨脚的写一个自动化SVN更新的WEB操作小平台, 这次决定用RAILS 4实现. 但因为网上的教材都是以3或2版本实现的.所以这次搞了不少弯路,现总结如下: 相关的VIEW代码: & ...

  7. 一道考验你设计能力的C++编程题

    http://www.cppblog.com/weiym/archive/2012/06/12/178472.html

  8. protocol buffer和当年corba ,和现在SOA有啥异同点

    CORBA是对象管理集团(OMG)的一个标准,使得不同语言编写的,运行在不同计算机上的能够协同工作.标准包括分布式计算的通讯协议(GIOP和IIOP),可映射到多种语言的接口描述语言(IDL),对象请 ...

  9. 优化大型复杂SQL

    with aa as (select a.agmt_id, sum(c.acct_bal) as card_bal, --借记卡期末存款余额 a.card_open_org, a.OPEN_DATE, ...

  10. Windows服务器Pyton辅助运维--03.安装Visual Studio 的 Python 开发插件 PTVS

    PTVS (Python Tools for Visual Studio) http://pytools.codeplex.com/ 当前版本:2.1 RC PTVS (Python Tools fo ...