我有一个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”索引?
感谢您的帮助!
答案 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";
}