在php中使用for循环构建关联数组

时间:2016-10-31 22:59:29

标签: php arrays

我正在尝试使用php创建一个关联数组。我想要的输出是

Array
(
     [key] => fl_0_sq
),
Array
(
     [key] => fl_1_sq
)

代码是

  $max_val = 2;  
  for($i=0; $i<$max_val; $i++)
  {
        $flr_arr .= "array('key' => 'fl_".$i."_sq'),";      
  }
  print_r($flr_arr);

输出

array('key' => 'fl_0_sq'),array('key' => 'fl_1_sq'),

现在的问题是它已成为字符串而不是数组。是否可以创建一个类似于所需输出的数组结构。任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

<?php

$flr_arr = [];

$max_val = 2;
for ($i = 0; $i < $max_val; $i++) {
  $flr_arr[][key] = 'fl_' . $i . '_sq';
}

$output = "<pre>";

foreach ($flr_arr as $i => $flr_arr_item) {
  $output .= print_r($flr_arr_item, true);
  if($i < count($flr_arr)-1){
    $output = substr($output, 0, -1) . ",\n";
  }
}
$output .= "</pre>";

echo $output;

输出:

Array
(
    [key] => fl_0_sq
),
Array
(
    [key] => fl_1_sq
)

答案 1 :(得分:0)

我不确定你想做什么,但你的输出可以通过以下方式完成:

  $max_val = 2;
  for($i=0; $i<$max_val; $i++)
  {
        $flr_arr = [];
        $flr_arr['key'] = 'fl_".$i."_sq';
        print_r($flr_arr);
  }

答案 2 :(得分:0)

您正在声明一个字符串并将其连接起来。您想要向数组添加元素。您也无法创建具有相同名称的多个阵列。你能做什么,虽然是2D阵列:

$flr_arr[] = array("key"=>"fl_$i_sq");

注意array()周围缺少引号。 “[]”语法将新元素添加到数组的末尾。输出将是 -

array(array('key' => 'fl_0_sq'),array('key' => 'fl_1_sq'))