【问题标题】:Creating two dimentional array in for-loop在for循环中创建二维数组
【发布时间】:2014-04-16 08:07:53
【问题描述】:

我想在 for 循环中创建一个数组,以便调整数组的大小 ($i)。 我试过这个:

$array = array();
for($i = 1; $i <= 5; $i++) {
    array_push($array,
        $i => array(
            "id" => "",
            "option" => ""
        ) 
    );
}

但我收到以下错误:

解析错误:语法错误,在...中出现意外的“=>”(T_DOUBLE_ARROW)

我还尝试通过在第 4 行执行 $i."" 使其成为字符串,但这似乎也不起作用。有谁知道为什么?

【问题讨论】:

    标签: php arrays for-loop


    【解决方案1】:

    更惯用的是:

    $array = array();
    for($i = 1; $i <= 5; $i++) {
        $array[$i] = array(
                    "id" => "",
                    "option" => "") ;
    }
    

    但是请注意,这将为您提供 1-5 的数组索引。数组通常从 0 开始索引:

    $array = array();
    for($i = 0; $i < 5; $i++) {
        $array[$i] = array(
                    "id" => "",
                    "option" => "") ;
    }
    

    但这可以在不指定密钥的情况下完成:

    $array = array();
    for($i = 1; $i <= 5; $i++) {
        $array[] = array(
                    "id" => "",
                    "option" => "") ;
    }
    

    【讨论】:

    • 我会这样做而不指定密钥。除非您需要密钥,否则要容易得多。
    【解决方案2】:

    试试这个:

    $array = array();
    for($i = 1; $i <= 5; $i++) {
        $array[$i] = array(
                "id" => "",
                "option" => ""
            );
    }
    

    【讨论】:

      【解决方案3】:

      删除$i =&gt;

      $array = array();
      for($i = 1; $i <= 5; $i++) {
          array_push($array, array(
                  "id" => "",
                  "option" => ""
              ) 
          );
      }
      

      【讨论】:

        猜你喜欢
        • 2014-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-30
        相关资源
        最近更新 更多