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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值