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 相关文章推荐
PHP4实际应用经验篇(2)
Oct 09 PHP
php你的验证码安全码?
Jan 02 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
dedecms集成财付通支付接口
Dec 28 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 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
CentOS安装php v8js教程
2015/02/26 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
Yii框架安装简明教程
2020/05/15 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
Javascript的this详解
2019/03/23 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
python树的同构学习笔记
2019/09/14 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python如何生成xml文件
2020/06/04 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
考博自荐信
2013/10/25 职场文书
工程师岗位职责规定
2014/02/26 职场文书
任命书格式
2014/06/05 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
小学生学习保证书
2015/02/26 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
HttpClient实现表单提交上传文件
2022/08/14 Java/Android