无法使用php访问数组

时间:2011-03-18 11:45:15

标签: php arrays

我使用像这样的PHP

创建了一个数组
$array1=array()

for($i=0;$i<5;$i++)
{
  $array1[$i]=somevalue;
  for($y=0;$y<$i;$y++)
  {
    print_r($array1[$y]);
  }
}

它不会打印该值。

5 个答案:

答案 0 :(得分:1)

如果没有别的,你应该移出内部循环:

for($i=0;$i<5;$i++)
{
    $array1[$i]=somevalue;
}

for($y=0;$y<5;$y++)
{
    print_r($array1[$y]);
}

答案 1 :(得分:1)

我刚刚运行了这段代码,我做的唯一改变就是在第一行添加分号;)

<?php

$array1=array();

for($i=0;$i<5;$i++)
{
  $array1[$i]="abcd";
  for($y=0;$y<$i;$y++)
  {
    print_r($array1[$y]);
  }
}

?>

输出: abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd

答案 2 :(得分:1)

根据@ Jon的回答:

$array1 = array();
for($i=0;$i<5;$i++)
{
    $array1[$i]=somevalue;
}

$count = count($array1);

for($y=0;$y<$count;$y++)
{
    print_r($array1[$y]);
}

可以将计数功能放在for循环中,但这是不好的做法。此外,如果您尝试获取数组中每个值的值,请尝试使用foreach。

$array1 = array();
for($i=0;$i<5;$i++)
{
    $array1[$i]=somevalue;
}
foreach($array1 as $value)
{
  print_r($value);
}

答案 3 :(得分:0)

由于print_r的工作方式,将它放在一个循环中是愚蠢的,这将为您提供实际输出并且没有错误:)。

$array1=array();

for($i=0;$i<5;$i++)
{
  $array1[$i]='somevalue';
}
print_r($array1);

答案 4 :(得分:0)

for($y=0;$y<$i;$y++)

你的显示循环没有显示你刚刚添加为$ array [$ i]的条目,因为你在小于 $ i

时循环$ y
for($y=0;$y<=$i;$y++)