php学习笔记 数组遍历实现代码


Posted in PHP onJune 09, 2011
<?php 
/* 数组的遍历 
* 
* 1.使用for语句循环遍历数组 
* 1.其他语言(只有这一种方式) 
* 2.PHP中这种方式不是首选的方式 
* 3.数组必须是索引数组,而且下标必须是连续的。 
* (索引数组下标可以不连续,数组还有关联数组,这两种不能遍历) 
* 
* 2.使用foreach语句循环遍历数组 
* foreacho(数组变量 as 变量值){ 
* //循环体 
* } 
* 1.循环次数由数组的元素个数决定 
* 2.每一次循环都会将数组中的元素分别赋值给后面变量 
* 
* foreach(数组变量 as 下标变量=> 值变量){ 
* } 
* 
* 
* 3.while() list() each() 组合循环遍历数组 
* 
* each()函数: 
* 1.需要一个数组作为参数 
* 2.返回来的也是一个数组 
* 3.返回来的数组是0,1,key,value四个下标(固定的) 
* 0和key下标是当前参数数组元素的键 
* 1和value下标是当前参数数组元素的值 
* 4.默认当前元素就是第一个元素 
* 5.每执行一次后就会将当前元素向后移动 
* 6.如果到最后的元素再执行这个函数,则返回false 
* list()函数: 
* 1. list()=array();需要将一个数组赋值给这个函数 
* 2.数组中的元素个数,要和list()函数中的参数个数相同 
* 3.数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量 
* 4.list()只能接受索引数组 
* 5.按索引的下标顺序来给参数赋值 
* 
* 
* 
*/ 
//for语句遍历数组 
$user=array(1,"zhangsan",40,"nan"); 
for($i=0;$i<4;$i++) 
{ 
echo"\$user[{$i}]=".$user[$i]."<br>"; 
} 
//使用foreach 
$user=array(1,"zhangsan",40,"nan"); 
foreach($user as $val)//$val是自定义变量 
{ 
echo $val."<br>";//输出与下标无关 
} 
foreach($user as $key=>$val)//$val $key 都是自定义变量 
{ 
echo $key."=====>".$val."<br>"; 
} 
//foreach遍历多维数组 
$info=array( 
"user"=>array( 
//$user[0] 
array(1, "zansan", 10, "nan"), 
//$user[1][1] 
array(2, "lisi", 20, "nv"), //$user[1] 
//$user[2] 
array(3, "wangwu", 30, "nan") 
), 
"score"=>array( 
array(1, 100, 90, 80), 
array(2, 99, 88, 11), 
array(3, 10, 50, 88) 
), 
"connect"=>array( 
array(1, '110', 'aaa@bbb.com'), 
array(2, '120', 'bbb@ccc.com'), 
array(3, '119', 'ccc@ddd.com') 
) 
); 
foreach($info as $tableName=>$table) 
{ 
echo '<table align="center" width="500" border="1">'; 
echo '<caption><h1>'.$tableName.'</h1></caption>'; 
foreach($table as $row) 
{ 
echo '<tr>'; 
foreach($row as $col) 
{ 
echo '<td>'.$col.'</td>'; 
} 
echo '</tr>'; 
} 
echo '</table>'; 
} //each()的使用 
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); 
$a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id ) 默认是第一个元素的值 
print_r($a); 
$b=each($user); 
print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 每执行一次,向后遍历一个 
$c=each($user); 
print_r($c);//Array ( [1] => 10 [value] => 10 [0] => age [key] => age ) 
$d=each($user); 
print_r($d);//Array ( [1] => nan [value] => nan [0] => sex [key] => sex ) 
$e=each($user); 
var_dump($e);//bool(false) 当没有元素时,返回的值 
//each()配合while遍历 
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); 
while($arr=each($user)) 
{ 
//echo $arr[0]."====>".$arr[1]."<br>";//通过0,1 来显示 键(下标) 和 值 
echo $arr["key"]."===>".$arr["value"]."<br>";//通过key,value 来显示 键 值 
} 
//list()函数的使用 
list($name,$age,$sex)=array("zhangsan",10,"nnnnn"); 
echo $name."<br>"; 
echo $age."<br>"; 
echo $sex."<br>"; 
//另一种使用方法 
list(,,$sex)=array("zhangsan",10,"nnnnn"); 
echo $sex."<br>";//只把性别转换为变量 
//ip判断 
$ip="192.168.1.128"; 
list(,,,$d)=explode(".",$ip);//explode表示用 . 来分隔,并返回一个数组 
echo $d;//取出128 
//list()只能接收索引数组的例子 
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); 
list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) 按照索引下标的顺序给list中的参数赋值,所以先是 0键 然后是 1值 
echo $key."--->".$value; 
//while list() each() 组合使用 
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); 
while(list($key,$value)=each($user)) 
{ 
echo $key."--->".$value."<br>"; 
} 
//多次循环只显示一次的解决方法 
//使用数组的内部指针控制函数 
//next(数组);数组指针移动到下一个 
//prev(数组);数组指针移动到上一个 
//reset(数组);数组指针移动到第一个(复位) 
//end(数组);数组指针移动到最后一个 
//current(数组);获取当前元素的值,当前元素时指数组指针指向的元素。 
//key(数组);获取当前元素的键值(下标) 
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); 
while(list($key,$value)=each($user)) 
{ 
echo $key."--->".$value."<br>"; 
} 
//在这里将数组指针移动到第一个以下循环就能输出 
//reset($user) 
while(list($key,$value)=each($user))//因为each()到最后一个返回false,所以循环直接跳出 
{ 
echo $key."--->".$value."<br>"; 
} 
while(list($key,$value)=each($user))//因为each()到最后一个返回false,所以循环直接跳出 
{ 
echo $key."--->".$value."<br>"; 
} 
echo current($user)."=====>".key($user); 
?>
PHP 相关文章推荐
PHP编码转换
Nov 05 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
php中异常处理方法小结
Jan 09 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php生成图片缩略图功能示例
Feb 22 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
PHP架构及原理知识点详解
Dec 22 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 PHP
php学习笔记 [预定义数组(超全局数组)]
Jun 09 #PHP
ThinkPHP自动验证失败的解决方法
Jun 09 #PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 #PHP
一个PHP缓存类代码(附详细说明)
Jun 09 #PHP
php下通过IP获取地理位置的代码(小偷程序)
Jun 09 #PHP
php 面试碰到过的问题 在此做下记录
Jun 09 #PHP
rephactor 优秀的PHP的重构工具
Jun 09 #PHP
You might like
一个显示天气预报的程序
2006/10/09 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
javascript的push使用指南
2014/12/05 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
浅析Python多线程下的变量问题
2015/04/28 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python BS4库的安装与使用详解
2018/08/08 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
经济管理专业自荐信
2013/12/30 职场文书
大家访活动实施方案
2014/03/10 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
给客户的检讨书
2014/12/21 职场文书
出国留学英文自荐信
2015/03/25 职场文书
欠款起诉书范文
2015/05/19 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
大学运动会通讯稿
2015/07/18 职场文书
文艺委员竞选稿
2015/11/19 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis