【问题标题】:Put the value of for loop inside array将for循环的值放入数组中
【发布时间】:2015-07-01 22:59:32
【问题描述】:

我正在尝试创建一个包含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);

【问题讨论】:

  • 你没有给变量赋值?
  • 您试图在没有循环的情况下显示它,但无论如何都要在for 循环中显示它?另外,为什么在添加任何内容之前尝试访问空数组中的$array_variable[$i]
  • 简单赋值问题。

标签: php html css


【解决方案1】:

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

$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);

否则您的数组将保持为空。

【讨论】:

    【解决方案2】:

    这会导致大量未定义的索引,因为您没有向$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>";
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      【解决方案4】:

      $array_variable = 数组();

      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
      

      【讨论】:

        【解决方案5】:

        您正在尝试打印一个不存在的元素,因为数组为空。 如果您坚持使用数组使用此代码,您会注意到您为数组元素分配了一个值:(如果您想在浏览器的新行上显示它,请使用 echo 注释掉):(如果对更多感兴趣: what is the difference between echo and 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);
            ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-11-25
          • 1970-01-01
          • 1970-01-01
          • 2013-07-02
          • 2012-08-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多