无法在CodeIgniter中向PHP数组添加数据

时间:2014-01-26 14:23:19

标签: php mysql arrays codeigniter indexing

我有一个PHP数组,实际上是一个用CodeIgniter的Active Record构建的MySQL行。

所以我有一个var_dump这样的数组:

array (size=10)
  0 => 
    array (size=4)
      'user_id' => string '2' (length=1)
      'puzzle_id' => string '17' (length=2)
      'birth' => string '2014-01-26 16:08:25' (length=19)
  1 => 
    array (size=4)
      'user_id' => string '2' (length=1)
      'puzzle_id' => string '16' (length=2)
      'birth' => string '2014-01-26 02:07:05' (length=19)
  2 => .....

这是这样构造的:

$this->db->order_by("birth" , "desc");
$rows = $this->db->get("my_table" , $limit)->result_array();        
foreach($rows as $row)
{
    $row['testindex'] = "testvalue";
}
return $rows;

那为什么我的数组没有“testindex”索引?

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

因为这不是PHP和foreach()特别有用的方式。

代码中的

$row$rows中相应元素的副本,而不是实际元素。修改副本不会修改原始文件。

你想要这样做:

for ($i = 0, $c = count($rows); $i < $c; $i++)
{
    $rows[$i]['testindex'] = 'testvalue';
}

答案 1 :(得分:0)

试试这个(PHP 5 +):

foreach($rows as &$row)
{
    $row['testindex'] = "testvalue";
}

答案 2 :(得分:0)

我想我也可以foreach执行此操作。

像这样:

foreach($rows as $key => $value)
{
  $rows[$key]['testindex'] = "testvalue";
}