<?php
//I have an array like this
$ar = array('0', '1', '2', '3', '4', '5');
for($i = 0; $i < count($ar); $i++)
{
echo $ar[$i+1]; //way1
echo $ar[$i] +=1 //way2
}
?>
因此我在way1和way2之间有所不同,因为我看到了相同的结果???
答案 0 :(得分:2)
这里的区别在于使用Assignment运算符和Increment运算符。
第一种方式:
$ ar [$ i + 1]将在$i + 1
的索引处打印数组元素,这意味着在循环的第一次迭代中为1。
echo $ar[$i + 1];
$ar[0 + 1];
$ar[1];
所以它会查找索引1的值,即1。
注意:循环时,当循环到达最后一次迭代时,您的语句将如下所示:
echo $ar[$i + 1];
$ar[5 + 1];
$ar[6];
它将显示未定义索引的通知,因为索引6未在数组中分配任何值。
第二种方式:
这里使用增量运算符。所以声明会变成这样:
echo $ar[$i] = $ar[$i] + 1;
首先,1将被添加到$ ar [$]然后分配给它。然后它将回显更新的值。在循环的第一次迭代中,它将是:
echo $ar[$i] = $ar[$i] + 1;
$ar[$i] = 0 + 1;
finally Ans will be 1;
答案 1 :(得分:1)
请说明你在这里找到的确切内容。
这两种方法完全不同,当您的数组值不同时,会给您不同的结果。
echo $ar[$i+1]; // Means you're printing the values corresponding to array keys 1, 2, 3.....
echo $ar[$i] +=1 // Means you're getting the values of keys 0, 1, 2... and adding 1 to each of the values.
如果你有一个数组$ ar = array(3,6,2,10),这两个将以这种方式工作:
echo $ar[$i+1]; // 6, 2, 10 ....
echo $ar[$i] +=1 // 4, 7, 3, 11....
希望这有帮助。
和平!的xD
答案 2 :(得分:0)
当然不是。
请注意,您的代码在";"
way2
way1
回显数组中的(i+1)
项。
way2
回显i-th
项'价值+ 1
所以,如果更改数组,结果可能会有所不同。
e.g。
$ar = array('1','3','4');
然后,
方式1将输出:
3,4
并抓住OutOfRange Exception
(因为它询问了$ar[3]
,这是不存在的。)
way2将输出:
2,4,5