PHP中的数组里面的变量类型可以有多种多样不一定要相同。
$a = array(32, 134, 54, 'ffefe');
for和foreach的区别:
$a[1] = 34;
$a[3] = 22;
$a[8] = 234;
$a[34] = 'ji';
foreach ($a as $value) {
echo $value.'<br/>';
}
使用foreach遍历数组时如果遇到不存在的下标对应的元素(如$a[2],$a[4]......)会自动跳过,只将存在的输出,输出结果如下:
34
22
234
ji
如果用的是for循环:
for ($i = 1; $i < count($a); $i++) {
echo $a[$i].'<br/>';
}
那么会有notice ,因为for比较老实,遇到上面$a[2]不见了它就会notice下你,然后就停下来了。
在自定义数组下标的数组里不能使用for来从0到len(某个长度,小于等于数组长度)来遍历,因为那个数组的下标不一定是数字,就算是数字可能也是0到len里不完整的一串。除非自定以时数组小标就是从0开始然后一直连续下去,不过这样的话还不如直接用直接定义法来定义。
所以在面对自定义数组下标的数组循环推荐使用foreach。
for,while,do...while 来遍历数组,必须得确认数组的下标是数值且是从0开始的顺序排放的连续正整数。如:0,1,2,3,4,5,6.........
------php数组------------
php数组可以是动态增长的
$a = array(3, 34, 31);
$a[4] = 333; //直接在下面添加一个元素进去,$a[4]就有着落了
echo $a[4];
echo $a[3]; //这会显示notice错误,因为没有上面只是添加了$a[4]J进去,$a[3] 仍然是不存在的
----------PHP中打印时双引号和单引号的区别-----------
$a = array(2, 43, 11, 54, 9, 90);
foreach ($a as $key => $value) {
echo "$key = $value<br/>"; //用的是双引号
}
打印结果:
0 = 2
1 = 43
2 = 11
3 = 54
4 = 9
5 = 90
如果是:echo '$key = $value<br/>'; //用的是单引号
输出结果是:
$key = $value
$key = $value
$key = $value
$key = $value
$key = $value
$key = $value
双引号和单引号的区别如上