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 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
PHP多进程编程实例详解
Jul 19 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
PHP中soap的用法实例
2014/10/24 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
详解Python编程中包的概念与管理
2015/10/16 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
办公室前台岗位职责范本
2013/12/10 职场文书
梅花魂教学反思
2014/04/25 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
单位病假条范文
2015/08/17 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python