数组中的两种方式有什么不同?

时间:2016-03-22 04:44:42

标签: php arrays

<?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之间有所不同,因为我看到了相同的结果???

3 个答案:

答案 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