将新元素添加到数组中


add new element to array

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

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

我想加上"字符串"$迭代器编号(即字符串1、字符串2等)作为值数组中的新元素。

我也试过这个

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

但这并不是我想要的。

更新结果看起来像这个

$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')
             );

为什么不直接做:

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

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

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

除此之外,我想不出在不看到更多代码的情况下还能做些什么,但它确实为数据库中输出的数组添加了额外的数据。

更新

也许我明白你现在的意思了。。。你想添加'stringX'(其中X是第n个条目)的次数与行的次数一样多,所以下面应该这样做(请注意,你的问题已经很接近了!),但我个人会先复制数组。

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

注意"&"这意味着您正在编辑$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个或5个以上的元素,请使用array_push。