如何使用php中的值填充多维数组

时间:2014-07-18 16:11:59

标签: php arrays multidimensional-array

我正在尝试使用datatables和php,并尝试在https://www.datatables.net/examples/data_sources/server_side.html处运行示例服务器端脚本。

作为其中的一部分,我需要创建一个数据列列数组,如下所示:

$columns = array(
                  array( 'db' => 'first_name', 'dt' => 0 ),
                  array( 'db' => 'last_name',  'dt' => 1 ),
                  array( 'db' => 'position',   'dt' => 2 ),
                  array( 'db' => 'office',     'dt' => 3 ),

              );

我有一个数组:

$mytablescolumns = array('name1','name2', ... )

我想迭代生成一个看起来像的二维数组:

 $columns = array(
                  array( 'db' => 'name1', 'dt' => 0 ),
                  array( 'db' => 'name2',  'dt' => 1 ),

我查看了http://php.net/manual/en/function.array-fill.phphttp://php.net/manual/en/function.array-fill-keys.php,但我不确定这些是否会实现这一点,因为它们似乎处理了1D数组。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:5)

我认为简单的foreach是最简单的:

$array = array();
foreach($mytablescolumns as $index => $column) {
  $array[] = array('db' => $column, 'dt' => $index);
}

print_r($array);

这将在$array变量中创建一个新数组。如果要修改原始数组,可以这样使用:

foreach($mytablescolumns as $index => &$column) {
  $column = array('db' => $column, 'dt' => $index);
}

print_r($mytablescolumns);

答案 1 :(得分:2)

那个怎么样?

for($i = 0; $i < count($mytablescolumns); $i++) {
   $columns[$i] = array('db'=>$mytablescolumns[$i],'dt'=>$i);
}

答案 2 :(得分:1)

这是我最近为快速创建一个初始化为0的二维数组(10x10)而做的事情:

<?php
  $a = array_fill(0, 10, array_fill(0, 10, 0));
?>

这应该在所需的任何维度上起作用,每次传递另一个array_fill()函数给array_fill()(作为第三个参数)。