PHP遍历数组-注释版
本文讲解了php数组遍历的两种通用方法(foreach法和list() each() while循环法),并由一维数组推广到二维数组的循环遍历。代码和注释如下,希望对大家的学习产生帮助。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>数组遍历</title>
</head>
<body>
<?php
// 首先,我们先解决一维数组键值对的遍历
$arr1=["a"=>"html","b"=>"css","c"=>"js","d"=>"php"];
// 由于值对应的键不是数字,所以传统for循环遍历是行不通的
// 使用foreach遍历
foreach ($arr1 as $key => $value) {
//foreach 结构如上 as前$arr1对应数组名称,后面的$key是数组每一个元素的键,对应的值则是value
// echo "$arr1[$key]<br>"; //输出形式1
echo "$value<br>"; //输出形式2(推荐)
}
echo "<br>";
//使用 list() each() while循环遍历
while(list($key,$value)=each($arr1)){
//while里的判断从右向左看: 先调取每一个 arr1的元素,元素中包含的键和值对应赋值给$key和$value
// echo "$arr1[$key]<br>"; //输出形式1
echo "$value<br>"; //输出形式2(推荐)
}
echo "<br>";
echo "<br>";
echo "<br>";
// 由一维数组,推广至二维数组
$arr2=array(
"网络"=>array("网络基础","网络安全","网络服务"),
"计算机"=>array("计算机硬件","计算机系统"),
"程序"=>array("C++活到老学到老","python入门到精通","SQL入门到入土")
);
//同样先使用foreach
foreach ($arr2 as $key1 => $value1) {
//这里我们得到了arr2中的每一个键值对,例如 "网络"=>array()
//key1很好得到,我们输出下来
echo "$key1<br>";
//但是我们无法直接通过echo得到value1中的值(因为value1的类型也是数组)
//所以我们再使用一次foreach循环,遍历每一个value1里的键值
foreach ($value1 as $key2 => $value2) {
//这样,我们就可以输出value2,也就得到了二维数组的值了
echo $value2."<br>";//(推荐)
}
}
echo "<br>";
echo "<br>";
echo "<br>";
//同理,each() list() while循环做法也是使用循环遍历,得到二维数组的值
while(list($key1,$value1)=each($arr2)){
echo "$key1<br>";
while(list($key2,$value2)=each($value1)){
echo "$value2<br>";
}
}
?>
</body>
</html>