繁体   English   中英

将for循环的值放在数组中

[英]Put the value of for loop inside array

我试图创建一个包含120,000之间所有奇数的数组。 我使用末尾的var_dump()来显示数组值而不使用循环。

由于某种原因,它将无法解决。

到目前为止这是我的代码:

$array_variable = array();

for($i=1; $i<=20000; $i++){
    if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
        print_r($array_variable[$i]); // if odd, echo it out and then echo newline for better readability;
    }
}

var_dump($array_variable);

您需要先将值推送到数组:

$array_variable = array();
for($i=1; $i<=20000; $i++){
   if($i%2 == 1){ 
       $array_variable[] = $i;// or array_push($array_variable, $i);
   }
}
var_dump($array_variable);

否则您的阵列将保持空白。

这会导致很多未定义的索引,因为您没有向$array_variable添加任何内容。

将代码更改为:

   $array_variable = array();

    for($i=1; $i<=20000; $i++){
      if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
        $array_variable[] = $i; // $array_variable[] means adding something to the array
      }
    }

    var_dump($array_variable); //dump all odd numbers

为了更好的可读性,您可以使用:

echo "<pre>";
print_r($array_variable);
echo "</pre>";

您的$ array_variable为空,因为您从不向其添加任何元素。 试试这个:

$array_variable = range(1, 20000, 2);

$ array_variable = array();

for($i=1; $i<=20000; $i++){
  if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
      array_push($array_variable, $i); //Push the variable into array
  }
}

var_dump($array_variable); //dump all odd numbers

您正在尝试打印由于数组为空而不存在的元素。 如果你坚持使用数组使用这个代码,你会注意到你为数组元素赋值:(如果你想在浏览器的新行上显示它,请使用echo注释掉):(如果对更多内容感兴趣: echo和print_r有什么区别

<?php 

        $array_variable = array();

        for($i=1; $i<=20000; $i++){
            $array_variable[$i]=$i;//assignment
            if($i%2 == 1){ // if the remainder after division `$i` by 2 is one{
            print_r($array_variable[$i]); // if odd, echo it out and then echo newline for better readability;
            //echo $array_variable[$i].'<br>';
        }
    }

        var_dump($array_variable);
    ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM