九九乘法表
for($x=1;$x<=9;$x++){ #定义变量x
for($y=1;$y<=$x;$y++){ #定义变量y
echo $x."*".$y."=".$x*$y." "; #输出
}
echo "<br>"; #换行
}
一个简单的变量循环输出
一维数组
$array = [
'name' => 'Jobs',
'age' => 50,
];
foreach ($array as $key => $value) {
$value = 22;
$array[$key] = $value;
# 此处的value是一个被复制的值,只给value赋值无法改变数组的值
}
等效于
$array = [
'name' => 'Jobs',
'age' => 50,
];
foreach ($array as $key => &$value) {
# &符号使循环过程中使用数组中原来的值,而不是一个复制的值
$value = 22;
}
也就是说在foreach中的 k e y 和 key和 key和value只是一个临时的值,是从$array中复制过来的,改变临时值无法改变原数组。
二维数组
$student = array(
1 => array(
'name' => "AJEST",
'age ' => "24",
'sex' => "男",
'grade' => "79.9"
),
2 => array(
'name' => "MDM",
'age ' => "23",
'sex' => "女",
'grade' => "59.9"
),
3 => array(
'name' => "XL",
'age ' => "25",
'sex' => "男",
'grade' => "59.9"
),
);
foreach($student as $valuea){
foreach($valuea as $valueb){
echo $valueb;
echo " ";
};
echo "<br>";
}
二维数组是一层套娃关系,第一层中的student和valuea都是数组,其值为array,第二层中的valueb是一维数组中的值。
等价于
foreach($student as $x){
foreach($x as $y=>$z){
echo $z;
echo " ";
};
echo "<br>";
}
第一层循环中将二维数组分解成一位数组,第二层中将一维数组中的name和value取出,输出,其中的
y
对应的是一维数组中的键,
y对应的是一维数组中的键,
y对应的是一维数组中的键,z对应的是一维数组中的值。
等价于
foreach($student as $a=>$x){
foreach($x as $y=>$z){
echo $z;
echo " ";
};
echo "<br>";
}
这里的第一层中的 a 对应的是二维数组中的键, a对应的是二维数组中的键, a对应的是二维数组中的键,x对应的是二维数组中的值,若输出他们输出的显然都是array。