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统计时会统计两种数组的总 ...
随机推荐
- 7. Debug on local machine
Step 1:
- sublime3中运行python 和设置
点bulid system建立下面文件 {"cmd":["C:/ProgramData/Anaconda3/python.exe", "-u" ...
- 【JS】 伪主动触发input:file的click事件
大家用到input:file标签时,对于input:file的样式难看的处理方法一般有2种: 采用透明化input:file标签的方法,上面放的input:file标签,下面放的是其他标签,实际点击的 ...
- SEO方式之HTTPS 访问优化详解
SEO到底要不要做HTTPS?HTTPS对SEO的重要性 正方观点 1.HTTPS具有更好的加密性能,避免用户信息泄露: 2.HTTPS复杂的传输方式,降低网站被劫持的风险: 3.搜索引擎已经全面支持 ...
- 2018.07.22 bzoj3613: [Heoi2014]南园满地堆轻絮(逆序对结论题)
传送门 做这道题有一个显然的结论,就是要使这个数列单调不减,就要使所有逆序对保证单调不减,也就是求出所有逆序对的最大差值,然后除以2然后就没了. 代码如下: #include<bits/stdc ...
- cordova 选择图片并上传到服务器
js navigator.camera.getPicture(function(imageURI){ var url=apiUrl+"/upload.aspx"; //alert( ...
- C++之new/delete/malloc/free详解
主要内容: 1. C语言中的函数malloc和free 2. C++中的运算符new和delete 3. new/delete与malloc/free之间的联系和区别 4. C/C++程序的内 ...
- 如何在MAC下安装Myeclipse2015真的很虐心!!!!!!!!!!
最近笔者换了一个新的笔记本,mac pro 因为同学说大公司的web开发都是写在Linux操作系统下的,所以我决定搞一个,但是装软件就是很困难啊!找了大量资料发现都不全,最后,终于搞好了,分享给同样虐 ...
- Spring MVC controller 被执行两次
interceptor 被执行两次 后来发现 时controller被执行两次 后来发现是jsp页面有个: <img src="#" > 导致被执行两次. 解决方案:去 ...
- COM是如何实现STA的
Rather than using thread synchronization objects (mutexes, semaphores, and so forth) to control acce ...