我正在尝试使用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.php和http://php.net/manual/en/function.array-fill-keys.php,但我不确定这些是否会实现这一点,因为它们似乎处理了1D数组。我怎么能做到这一点?
答案 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()(作为第三个参数)。