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 25 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
PHP实现的多彩标签效果代码分享
Aug 21 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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模板技术[转]
2007/01/04 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
python 域名分析工具实现代码
2009/07/15 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Python读写zip压缩文件的方法
2018/08/29 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
集体婚礼证婚词
2014/01/13 职场文书
初三化学教学反思
2014/01/23 职场文书
勤俭节约倡议书
2014/04/14 职场文书
数学教育专业求职信
2014/07/22 职场文书
擅自离岗检讨书
2014/09/12 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
音乐教师个人总结
2015/02/06 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers