Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 索引数内的数组_Php_Arrays - Fatal编程技术网

Php 索引数内的数组

Php 索引数内的数组,php,arrays,Php,Arrays,我试着测试一个新东西,刚刚看到一个不寻常的输出,我无法得到循环中到底发生了什么,有人能解释一下,如果我们取一个数组,并将该数组分配给一个变量,我们运行for循环,我们为forloop提供了$array和$array的索引,类似于$array[$I]]所以我的意思是,我很困惑,无法完全解释,但是你能回顾一下代码,让我知道到底发生了什么吗 $array = array(1, 2, 3, 5, 8, 13, 21, 34, 55); $sum = 0; for($i = 0; $i < 5;

我试着测试一个新东西,刚刚看到一个不寻常的输出,我无法得到循环中到底发生了什么,有人能解释一下,如果我们取一个数组,并将该数组分配给一个变量,我们运行for循环,我们为forloop提供了$array和$array的索引,类似于$array[$I]]所以我的意思是,我很困惑,无法完全解释,但是你能回顾一下代码,让我知道到底发生了什么吗

$array = array(1, 2, 3, 5, 8, 13, 21, 34, 55);

$sum = 0;

for($i = 0; $i < 5; $i++) {
    $sum += $array[$array[$i]];
}
echo $sum ;
$array=array(1,2,3,5,8,13,21,34,55);
$sum=0;
对于($i=0;$i<5;$i++){
$sum+=$array[$array[$i]];
}
echo$sum;
输出78,因为它添加了值,但是如果我删除$sum+=并这样写

  echo $array[$array[$i]] . "<br />"; 
echo$array[$array[$i]]。“
”;
现在我将得到这样的输出

二, 3. 5. 13 五十五


对于
$I=0

  • 什么是
    $array[$i]
    ->
    $array[0]
    ->
    1
  • 什么是
    $array[$array[$i]]
    ->
    $array[1]
    ->
    2
依此类推。

第一次迭代($i=0)

第二次迭代($i=1)

第三次迭代($i=2)

第四次迭代($i=3)

第五次迭代($i=4)


您正在使用数组的值访问密钥

$array = array(1, 2, 3, 5, 8, 13, 21, 34, 55);

$sum = 0;

for($i = 0; $i < 5; $i++) {
    $sum += $array[$array[$i]] . "<br />";
}
echo $sum ;
循环2:

$i = 1;
$sum += $array[$array[1]];
$sum += $array[2];
$sum += 3;
循环3:

$i = 2;
$sum += $array[$array[2]];
$sum += $array[3];
$sum += 5;
循环4:

$i = 3;
$sum += $array[$array[3]];
$sum += $array[5];
$sum += 13;
循环5:

$i = 4;
$sum += $array[$array[4]];
$sum += $array[8];
$sum += 55;
所以


当$i=0时,$array[$array[$i]]变为$array[$array[0]],这是$array[1],因为$array[0]=1。因此$array[1]的计算结果为2

保持同样的想法

例如,对于$i=4,由于$array[4]=8,因此$array[$i]]变为$array[$array[4]],即$array[8]。因此,$array[8]的计算结果为55


一步一步思考。

为什么是
$array[$i]
?为什么要将

添加到整数中?brother只是通过回显值echo$array[$array[$i]]进行检查。“
”;把问题放在这里,我忘了删除好的,明白了,真的很困惑,让我一步一步地看一看好的,我现在明白了,它会为索引号添加值,明白了,谢谢
$array[3] = 5
$array[$i] = $array[3] = 5
$array[5] = 13
$array[$i] = $array[4] = 8
$array[8] = 55
$array = array(1, 2, 3, 5, 8, 13, 21, 34, 55);

$sum = 0;

for($i = 0; $i < 5; $i++) {
    $sum += $array[$array[$i]] . "<br />";
}
echo $sum ;
$i = 0;
$sum += $array[$array[0]];
$sum += $array[1];
$sum += 2;
$i = 1;
$sum += $array[$array[1]];
$sum += $array[2];
$sum += 3;
$i = 2;
$sum += $array[$array[2]];
$sum += $array[3];
$sum += 5;
$i = 3;
$sum += $array[$array[3]];
$sum += $array[5];
$sum += 13;
$i = 4;
$sum += $array[$array[4]];
$sum += $array[8];
$sum += 55;
$sum = 2 + 3 + 5 + 13 + 55 = 80