使用预填充列名创建N长度数组

时间:2015-10-08 06:37:39

标签: php arrays dynamic-arrays

我的目标是创建一个N长度的数组,其中预填充的列名称为<a>。这是一个例子,

PHP

我尝试了if N = 5; then $test_array = array('column1', 'column2', 'column3', 'column4', 'column5'); 函数,但数组值相同。有人可以建议我一个更好的方法吗?

更新

这是使用array_fill时的外观。我知道,我可以使用array_fill并在几秒钟内解决这个问题,我正在寻找单行方法;如果存在。

foreach

结果:数组([0] =&gt;列[1] =&gt;列[2] =&gt;列[3] =&gt;列[4] =&gt;列)

3 个答案:

答案 0 :(得分:1)

我想这就是你要找的东西,考虑到你写的“列名”要预先填写:

<?php
$test_array = [];
for ($i=0; $i<5; $i++) {
    $test_array['column'.$i] = null;
}
var_dump($test_array);

这将创建此输出:

array(5) {
  'column0' => NULL
  'column1' => NULL
  'column2' => NULL
  'column3' => NULL
  'column4' => NULL
}

如果您正在寻找“列值”,那么预先填充数组元素,然后尝试:

<?php
$test_array = [];
for ($i=0; $i<5; $i++) {
    $test_array[] = 'column'.$i;
}
var_dump($test_array);

这将创建此输出:

array(5) {
  0 => 'column0'
  1 => 'column1'
  2 => 'column2'
  3 => 'column3'
  4 => 'column4'
}

答案 1 :(得分:0)

在Php中,数组是动态的。您不需要设置其长度。根据您的需要,您可以创建一个数组作为键(列名),然后将其组合到包含数组的值。尝试下面 -

    $column_array=array('column1', 'column2', 'column3', 'column4', 'column5');
    $value_array=array('a','b','c','d','e');
    $reslut=array_combine($column_array,$value_array);
    print_r($result);

<强>输出

Array ( [column1] => a [column2] => b [column3] => c [column4] => d [column5] => e ) 

array_combine需要两个数组都有相同的长度。当你的条件停留时,可能是某些列可能是空值。在这种情况下工作如下 -

    $column_array=array('column1', 'column2', 'column3', 'column4', 'column5');
    $value_array=array('a','b','c','d');
    $value_array +=array_fill(
                            count($value_array),
                            count($column_array)-
                            count($value_array),null);
                            //filling array upto column array length
    $result=array_combine($column_array,$value_array);
    print_r($result);

<强>输出

 Array ( [column1] => a [column2] => b [column3] => c [column4] => d [column5] => ) 

答案 2 :(得分:0)

<?php
$array = [];
for ($i=0; $i<5; $i++) {
    $array['column'.$i] = null;
}
die($array);
?>