【问题标题】:How to fill a multidimensional array with values in php如何用php中的值填充多维数组
【发布时间】:2014-07-18 16:11:58
【问题描述】:

我正在尝试使用数据表和 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 ,但我不确定它们是否会实现这一点,因为它们似乎处理一维数组。我怎样才能做到这一点?

【问题讨论】:

  • 您是否尝试过编写一个简单的foreach() 循环来这样做?

标签: php arrays multidimensional-array


【解决方案1】:

我认为一个简单的 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);

【讨论】:

    【解决方案2】:

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

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

    这应该适用于尽可能多的维度,每次传递给 array_fill()(作为第三个参数)另一个 array_fill() 函数。

    【讨论】:

      【解决方案3】:

      那个怎么样?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-25
        • 1970-01-01
        • 2012-11-20
        • 2018-01-27
        • 1970-01-01
        • 2021-04-14
        • 2012-11-13
        • 2016-02-18
        相关资源
        最近更新 更多