加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php怎么遍历数组?

发布时间:2022-12-16 15:32:39 所属栏目:PHP教程 来源:网络
导读:
PHP中遍历数组有三种常用的方法:
1、使用for语句循环遍历数组;
2、使用foreach语句遍历数组;
3、联合使用list()、each()和while循环遍历数组。
这三种方法中效率最高的是使用foreach语

php数组转js数组_php数组转换为js数组_PHP数组

PHP中遍历数组有三种常用的方法:

1、使用for语句循环遍历数组;

2、使用foreach语句遍历数组;

3、联合使用list()、each()和while循环遍历数组。

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。

一、使用for语句循环遍历数组

值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组PHP数组,所以PHP中很少用for语句循环遍历数组。

实例代码如下:

<?php
header("Content-Type: text/html; charset=utf-8");
$arr = array('https://www.php.cn','php中文网','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'
'; } ?>

登录后复制

注释:上例代码中我们先计算出数组$arr中元素的个数,然后才使用在for语句,这样做很高效的。因为如果是for($i=0;$i< count($arr);++$i)的话,每次循环都会计算数组$arr中元素的个数,而使用上面的方式可以减去这种开销。使用++$i也是为了提高效率,前面有文章我们提到过,建议大家再看看。

上面代码的输出结果为:

https://www.php.cn
php中文网
PHP教程

登录后复制

二、使用foreach语句遍历数组

使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下:

PHP数组_php数组转js数组_php数组转换为js数组

第一种方式:

foreach(array_expression as $value){
//循环体
}

登录后复制

实例代码:

<?php
header("Content-Type: text/html; charset=utf-8");
$arr = array('https://www.php.cn','php中文网','PHP教程');
foreach($arr as $value){
echo $value.'
'; } ?>

登录后复制

每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。

第二种方式:

foreach(array_expression as $key=>$value){
//循环体
}

登录后复制

实例代码:

<?php
header("Content-Type: text/html; charset=utf-8");
$arr = array('https://www.php.cn','php中文网','PHP教程');
foreach($arr as $k=>$v){

php数组转js数组_PHP数组_php数组转换为js数组

echo $k."=>".$v."
"; } ?>

登录后复制

输出:

0=>https://www.php.cn
1=>php中文网
2=>PHP教程

登录后复制

三、联合使用list()、each()和while循环遍历数组

each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。

list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。

实例代码:

<?php
header("Content-Type: text/html; charset=utf-8");
//定义循环的数组
$arr = array('website'=>'https://www.php.cn','webname'=>'php中文网');
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'
'; } ?>

登录后复制

输出:

website=>https://www.php.cn
webname=>php中文网

登录后复制

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!