您的当前位置:首页正文

php中对数组进行for循环,php-使用for循环打印数组

来源:九壹网

我想将此数组打印到所有索引直到21,但是在此代码中仅打印到数组长度,我应该在for循环中打印整个数组吗?

$array=array(0=>"hello",

1=>"world",

2=>"this",

3=>"is",

4=>"an",

20=>"array",

21=>"code" );

$length=count($array);

for($i=0;$i

echo "$i=>".$array[$i];

echo "
";

}

?>

解决方法:

您的困难是定义数组的方式:

$array=array(0=>"hello",

1=>"world",

2=>"this",

3=>"is",

4=>"an",

20=>"array",

21=>"code" );

php中的数组实际上是哈希表.当您在上面的数组上调用索引5时,它是未定义的.不会定义最多20个索引项,这些索引项将引起注意:

PHP Notice: Undefined offset: 5

因为您使用数组长度作为迭代变量,并精确地调用该变量,所以您在代码中永远不会获得位置20和21.

这是阵列在计算机上的外观:

0 => "hello"

1 => "world"

2 => "this"

3 => "is"

4 => "an"

5 => NULL

6 => NULL

7 => NULL

... //elided for succinctness

19 => NULL

20 => "array"

21 => "code"

当您调用$array [7]时,它什么也不会返回.当您调用$array [20]时,它将返回“ array”.

您真正想要的是一个foreach循环:

foreach($array as $key => $val) {

//key will be one of { 0..4, 20..21}

echo "$key is $value\n";

}

导致:

$php test.php

0 is hello

1 is world

2 is this

3 is is

4 is an

20 is array

21 is code

如果必须使用for循环:

$key_array = array_keys($array);

for($i=0;$i

$key = $key_array[$i];

echo "$key => ".$array[$key]."\n";

}

请注意,这不是一个干净的解决方案.

标签:for-loop,arrays,php

来源: https://codeday.me/bug/20191031/1973738.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Top