PHP之旅3 php数组以及遍历数组 以及each() list() foreach()
php的数组的定义
<?php
//php中定义数组时可以通过索引直接进行赋值:
$mArr[0]="哈哈";
$mArr[1]=70;
$mArr[2]='haha';
echo "下面输出的是mArr:<br/>";
var_dump($mArr);
echo "<br/>"; //也可以直接赋值,php会从0自动编码
$kArr[]="哈哈";
$kArr[]=70;
$kArr[]='haha';
echo "下面输出的是kArr:<br/>";
var_dump($kArr);
echo "<br/>";
//还可以这样写
$rArr[5]="哈哈";
$rArr[]=70;
$rArr[]='haha';
echo "下面输出的是rArr:<br/>";
var_dump($rArr);
echo "<br/>";
?>
结果:

但如果定义了两个相同的索引,那前面那个值将会被覆盖掉。可以自己尝试一下。
数组的遍历:
foreach();
php的数组遍历可以通过for和while循环进行遍历,还可以有foreach进行,表达式有两种,分别是:
foreach(数组名 as 元素名){
语句块;
}
或者:
foreach(数组名 as 键名 => 元素名){
语句块;
}
两个有些不同,可以通过下面的例子看出:如果数组是键值对的话只能将数组中的键值对的值获取到,第二种方法是可以将key也获取到。
eg:
<?php
$name = array('张三' => '姓张','李四'=>'姓李','王二'=>'姓王','赵一'=>'姓赵');
foreach ($name as $value) {
echo "第一次的结果::".$value."<br/>";
}
foreach ($name as $key => $value) {
echo "第二次的结果::"."key的值是:"."$key".",并且value的值为:"."$value<br/>";
}
?>
结果是:

list()进行遍历数组
list()并不是真正的函数,和array[]一样,是一种语言结构,list()只能用于下标从0开始的索引数组。
void list(mixed $var , mixed $...)
eg:
<?php
$mArr=["张三",20,'男','1998年出生']; list($name,$age,$sex) = $mArr; echo $name.' '.$age.' '.$sex;
?>
结果:

可以看出list()是直接取得mArr的从下边为了、0开始的前三个值
each()遍历数组
each()用于返回数组中当前的键值对,并将数组指针向前移动一步。语法格式:
array each(array $var);
eg:
<?php
$mArr=["张三",20,'男','1998年出生']; $arr = each($mArr);
echo "<br/>";
var_dump($arr); $arr = each($mArr);
echo "<br/>";
var_dump($arr); $arr = each($mArr);
echo "<br/>";
var_dump($arr); $arr = each($mArr);
echo "<br/>";
var_dump($arr);
?>
结果为:

返回4个单元的数组,键名为0、1、key、value。单元0和key包含数组的键名,1和value办函数组元素的值如果指针越界,则each()返回FALSE。
混合使用list()与each()遍历数组:
eg:
<?php
$mArr=["张三",20,'男','1998年出生']; while (list($key,$value) = each($mArr)) {
echo $key."=>".$value;
echo "<br/>";
}
?>
结果如下:

二维数组就以及遍历就是按照上面的方法进行嵌套。
PHP之旅3 php数组以及遍历数组 以及each() list() foreach()的更多相关文章
- 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat
除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...
- 用数组指针遍历数组,FOR/FOREACH遍历数组
1. 用数组指针遍历一维数组 <?php header("Content-type:text/html;charset=utf-8"); /*用数组指针遍历一位数组的值*/ ...
- java数组,遍历数组
数组:一组具有相同数据类型的集合(容器) 1.数组声明格式: 数据类型 [] 数组名 = new 数据类型[长度]: 数组长度一旦确定无法更改. 数组里的数据必须是相同类型或自动向上转型后兼容的类型 ...
- php数组函数,遍历数组的几种方法
数组创建: 1.array(): 生成一个数组 $a=array("Dog","Cat","Horse"); print_r($a);数组值 ...
- JavaScript for/in 语句 遍历数组内容
for-in遍历 for-in是为遍历对象而设计的,不适用于遍历数组. 遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1" ...
- JAVA数组的遍历和取最值
1.获取数组中的所有元素,会用到数组的遍历 数组的遍历,通常用for循环. public class ArrayDemo { public static void main(String[] args ...
- 第27天:js-表单获取焦点和数组声明遍历
一.表单 1.this指事件的调用者2.input.value 表单更换内容3.innerHTML更换盒子里的内容,文字.标签都能换.4.isNaN("12")如果里面的不是个数字 ...
- JS数组&对象遍历
遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...
- PHP数组循环遍历的四种方式
1.使用for循环遍历数组 conut($arr);用于统计数组元素的个数. for循环只能用于遍历,纯索引数组!!!! 如果存在关联数组,count统计时会统计两种数组的总 ...
随机推荐
- numpy 命令 ravel 等
xx.ravel() :表示把一个矩阵行优先展成一个向量.跟flatten一样. import numpy as np print (np.c_[np.array([[1,2,3],[2,3,5]] ...
- 顺序表[A+B->C]
/*----代码段@映雪------*/ /*采用顺序表存储,改成数组也行*/ int MergeList(SeqList &A,SeqList &B,SeqList &C) ...
- MFC框架仿真<一>
#include "my.h" CMyWinApp theApp;/*起点->全局对象*/ void main() { CWinApp* pApp = AfxGetApp() ...
- WriteableBitmap(一)
通常,WPF中的位图是不可变的.不可变的位图非常有效,如果您希望进行大量的动态更改,创建和销毁它们的开销会变得非常昂贵.在这种情况下,您需要一些更灵活的东西——WriteableBitmap. Wri ...
- 201709025工作日记--更新UI方法
1.handler+Thread 和 runOnUIThread 和 handler.post 方法 区别: 从实现原理上,两者别无二致,runOnUiThread也是借助Handler实现的. 对 ...
- 用Node完成AWS S3的Upload流程之全世界最简版
开场: 查了两天文档,Error了38次,最后索性去掉所有附加条件, 连界面也不要了,在命令行里跑通了一坨最干瘪的Upload流程! 还冒着热气…… 在此先做记录,明天可以搭配美美的界面继续调试了. ...
- Robotframework 之常用断言关键字简介
任何自动化测试框架或实例中断言是必不可少的,Robotframework同样如此,那下面就介绍下其常用断言关键字. 1.Should Be Empty 判断是否为空,如果不为空,执行失败,示例: ...
- DFS剪枝处理HDU1010
http://acm.hdu.edu.cn/showproblem.php?pid=1010 题意很好理解,不是最短路,而是dfs,虽然地图不算大,稍微注意一点的dfs也能险过,但是700+ms和78 ...
- Excel中使用VBA进行度分秒与十进制度的转换
发现Excel的VBA功能真是批量处理的一把利刃,工作中小试牛刀了一把,将Excel中度分秒形式的坐标批量处理成十进制度形式,处理完后用于GIS展点制图. 原Excel数据如下: VBA代码如下: S ...
- Log4Net从Mvc转到.Net Core
原项目用的Log4Net,不过版本比较旧,在Core里新版也进行了支持,本文用的是现在最新版本2.0.8 1.LogHelper帮助类放另一个类库中 Log/LogHelper.cs 2.单独建的配置 ...