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 编写大型网站问题集
May 07 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
php中hashtable实现示例分享
Feb 13 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
初识Laravel
Oct 30 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
在thinkphp5.0路径中实现去除index.php的方式
Oct 16 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
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
Keras设置以及获取权重的实现
2020/06/19 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
python编程的核心知识点总结
2021/02/08 Python
东方电视购物:东方CJ
2016/10/12 全球购物
一道SQL面试题
2012/12/31 面试题
女方婚礼新郎答谢词
2014/01/11 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers