php的数组的定义

  1. <?php
  2. //php中定义数组时可以通过索引直接进行赋值:
  3. $mArr[0]="哈哈";
  4. $mArr[1]=70;
  5. $mArr[2]='haha';
  6. echo "下面输出的是mArr:<br/>";
  7. var_dump($mArr);
  8. echo "<br/>";
  9.  
  10. //也可以直接赋值,php会从0自动编码
  11. $kArr[]="哈哈";
  12. $kArr[]=70;
  13. $kArr[]='haha';
  14. echo "下面输出的是kArr:<br/>";
  15. var_dump($kArr);
  16. echo "<br/>";
  17. //还可以这样写
  18. $rArr[5]="哈哈";
  19. $rArr[]=70;
  20. $rArr[]='haha';
  21. echo "下面输出的是rArr:<br/>";
  22. var_dump($rArr);
  23. echo "<br/>";
  24. ?>

结果:

但如果定义了两个相同的索引,那前面那个值将会被覆盖掉。可以自己尝试一下。

 数组的遍历:

foreach();

php的数组遍历可以通过for和while循环进行遍历,还可以有foreach进行,表达式有两种,分别是:

foreach(数组名  as  元素名){

语句块;

}

或者:

foreach(数组名 as 键名 => 元素名){

语句块;

}

两个有些不同,可以通过下面的例子看出:如果数组是键值对的话只能将数组中的键值对的值获取到,第二种方法是可以将key也获取到。

eg:

  1. <?php
  2.  
  3. $name = array('张三' => '姓张','李四'=>'姓李','王二'=>'姓王','赵一'=>'姓赵');
  4.  
  5. foreach ($name as $value) {
  6. echo "第一次的结果::".$value."<br/>";
  7. }
  8.  
  9. foreach ($name as $key => $value) {
  10. echo "第二次的结果::"."key的值是:"."$key".",并且value的值为:"."$value<br/>";
  11. }
  12. ?>

结果是:

list()进行遍历数组

list()并不是真正的函数,和array[]一样,是一种语言结构,list()只能用于下标从0开始的索引数组。

void list(mixed $var , mixed $...)

eg:

  1. <?php
  2. $mArr=["张三",20,'男','1998年出生'];
  3.  
  4. list($name,$age,$sex) = $mArr;
  5.  
  6. echo $name.' '.$age.' '.$sex;
  7. ?>

结果:

可以看出list()是直接取得mArr的从下边为了、0开始的前三个值

each()遍历数组

each()用于返回数组中当前的键值对,并将数组指针向前移动一步。语法格式:

array each(array $var);

eg:

  1. <?php
  2. $mArr=["张三",20,'男','1998年出生'];
  3.  
  4. $arr = each($mArr);
  5. echo "<br/>";
  6. var_dump($arr);
  7.  
  8. $arr = each($mArr);
  9. echo "<br/>";
  10. var_dump($arr);
  11.  
  12. $arr = each($mArr);
  13. echo "<br/>";
  14. var_dump($arr);
  15.  
  16. $arr = each($mArr);
  17. echo "<br/>";
  18. var_dump($arr);
  19. ?>

结果为:

返回4个单元的数组,键名为0、1、key、value。单元0和key包含数组的键名,1和value办函数组元素的值如果指针越界,则each()返回FALSE。

混合使用list()与each()遍历数组:

eg:

  1. <?php
  2. $mArr=["张三",20,'男','1998年出生'];
  3.  
  4. while (list($key,$value) = each($mArr)) {
  5. echo $key."=>".$value;
  6. echo "<br/>";
  7. }
  8. ?>

结果如下:

二维数组就以及遍历就是按照上面的方法进行嵌套。

PHP之旅3 php数组以及遍历数组 以及each() list() foreach()的更多相关文章

  1. 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat

    除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...

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

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

  3. java数组,遍历数组

    数组:一组具有相同数据类型的集合(容器) 1.数组声明格式: 数据类型 [] 数组名 = new 数据类型[长度]: 数组长度一旦确定无法更改. 数组里的数据必须是相同类型或自动向上转型后兼容的类型 ...

  4. php数组函数,遍历数组的几种方法

    数组创建: 1.array(): 生成一个数组 $a=array("Dog","Cat","Horse"); print_r($a);数组值 ...

  5. JavaScript for/in 语句 遍历数组内容

    for-in遍历 for-in是为遍历对象而设计的,不适用于遍历数组. 遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1" ...

  6. JAVA数组的遍历和取最值

    1.获取数组中的所有元素,会用到数组的遍历 数组的遍历,通常用for循环. public class ArrayDemo { public static void main(String[] args ...

  7. 第27天:js-表单获取焦点和数组声明遍历

    一.表单 1.this指事件的调用者2.input.value 表单更换内容3.innerHTML更换盒子里的内容,文字.标签都能换.4.isNaN("12")如果里面的不是个数字 ...

  8. JS数组&对象遍历

    遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...

  9. PHP数组循环遍历的四种方式

     1.使用for循环遍历数组     conut($arr);用于统计数组元素的个数.     for循环只能用于遍历,纯索引数组!!!!     如果存在关联数组,count统计时会统计两种数组的总 ...

随机推荐

  1. nfs文件系统在linux下挂载不上的解决办法

      标签: mount nfs export 2014年08月07日 18:46:247472人阅读 评论(0) 收藏 举报  分类: 文件系统(10)  版权声明:本文为博主原创文章,未经博主允许 ...

  2. mvc模拟实现

    .定义httpmodule <system.webServer> <modules> <add name="UrlRoutingModule" typ ...

  3. VS快捷键以及Reshaper快捷键

    VS快捷键: Resharper 快捷键(此图是保存他人的[具体是谁忘记了]): 参考: http://msdn.microsoft.com/zh-cn/library/da5kh0wa.aspx

  4. kbmMWEncodeEscapes 中汉字编码的问题及解决办法

    kbmMWEncodeEscapes 是kbmmw 里面的一个函数,用来对URL 中的汉字进行编码,例如 http://127.0.0.1/getname?name=春节,由于'春节'是汉字,浏览器向 ...

  5. 2018.10.23 hdu4745Two Rabbits(区间dp)

    传送门 区间dp经典题目. 首先断环为链. 然后题目相当于就是在找最大的回文子序列. 注意两个位置重合的时候相当于范围是n,不重合时范围是n-1. 代码: #include<bits/stdc+ ...

  6. Django模型层(2)

    https://www.cnblogs.com/yuanchenqi/articles/8963244.html from django.db import models class Author(m ...

  7. 201709013工作日记--static理解 && abstract

    1.关于viewHolder设置成static的讨论 一般情况下是尽量不要使用static关键字,因为static一旦有引用变量指向了变量,使用完毕后而没有设置null,就会造成内存泄露,而且很难排查 ...

  8. 整理iOS9适配中出现的坑

    一.NSAppTransportSecurity iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输.直接造成的情况就是App发请求的时候弹出网络无法连 ...

  9. (最短路 dijkstra)昂贵的聘礼 -- poj -- 1062

    链接: http://poj.org/problem?id=1062 昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions ...

  10. hdu5883 The Best Path 2016-09-21 21:31 92人阅读 评论(0) 收藏

    The Best Path Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...