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 数字左侧自动补0
Mar 31 PHP
php 获取远程网页内容的函数
Sep 08 PHP
PHP sprintf()函数用例解析
May 18 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
用PHP代码给图片加水印
Jul 01 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
php提供实现反射的方法和实例代码
Sep 17 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
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
详解Vue方法与事件
2017/03/09 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
QML使用Python的函数过程解析
2019/09/26 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
生物科学系大学生的自我评价
2013/12/20 职场文书
留学推荐信写作指南
2014/01/25 职场文书
争先创优活动总结
2014/08/27 职场文书
学校会议通知范文
2015/04/15 职场文书
销售合作意向书范本
2015/05/08 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书