将新元素添加到数组中

时间:2012-02-11 20:36:56

标签: php codeigniter

我这样做是为了查询数据库中的所有数据

$query=$this->db->get('tablename', $num, $offset);

我想添加“string”。$ iteratorNumber(即string1,string2等)作为值数组中的新元素。

我也试过这个

$query=$this->db->get('tablename', $num, $offset);
$query=$query->row_array();
$i=0;
foreach($query as $row)
{ 
   array_push($row,"string".i++);
}

但这不符合我的要求。

UPDATE 结果看起来像这样

$data = array(
             array('Name', 'Color', 'Size'),
             array('Fred', 'Blue', 'Small'),
             array('Mary', 'Red', 'Large'),
             array('John', 'Green', 'Medium')
             );

然后我想获得

$data = array(
             array('Name', 'Color', 'Size',''),
             array('Fred', 'Blue', 'Small','something'),
             array('Mary', 'Red', 'Large','something'),
             array('John', 'Green', 'Medium','something')
             );

2 个答案:

答案 0 :(得分:3)

为什么不这样做:

$query = $this->db->get('tablename', $num, $offset);
$query[] = "new data here!";

然后添加一个新元素? - 如果是数组,你可以这样做:

$query[] = array("data" => "new data here!");

除了上述内容之外,如果没有看到更多代码,我无法想象你能做些什么 - 但它会从数据库中为你输出的数组添加额外的数据。

<强>更新

也许我现在明白你的意思了......你想要添加'string X'(其中X是第n个条目)的次数与行数一样多,所以下面应该这样做(注意你的问题非常接近那里!),但我亲自制作阵列的副本。

$query = $copy = $this->db->get('tablename', $num, $offset);
$i=0;
foreach($query as $row){ 
   array_push($copy,"string".i++);
}
$query = $copy;

答案 1 :(得分:1)

注意“&amp;” thingy,这意味着你正在编辑$ row,并希望即使在foreach完成时也会持续更改

$query=$this->db->get('tablename', $num, $offset);
$query=$query->row_array();
$i=0;
foreach($query as &$row){ 
   $row[] = "string" . $i++;
   //array_push($row,"string".i++);
}

另外,$ row []比array_push快,因为它没有调用函数的开销。如果要添加5个或更多元素,请使用array_push