добавить новый элемент в массив - PullRequest
1 голос
/ 12 февраля 2012

Я делаю это для запроса всех данных из базы данных

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

Я хотел бы добавить "строку". $ IteratorNumber (то есть строка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')
             );

Ответы [ 2 ]

3 голосов
/ 12 февраля 2012

Почему бы просто не сделать:

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

Затем добавляется новый элемент?- Если это массив, вы можете просто сделать:

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

Кроме вышеперечисленного, я не могу думать о том, что вы можете сделать, не увидев даже больше вашего кода - но он добавляет дополнительные данные кваш выведенный массив из базы данных.

Обновление

Может быть, я понимаю, что вы имеете в виду сейчас ... вы хотите добавить «строку X» (где X является n-мentry) столько раз, сколько есть строк, поэтому следующее должно сделать это (заметьте, ваш вопрос почти готов!), но я бы лично сделал копию массива перед этим.

$query = $copy = $this->db->get('tablename', $num, $offset);
$i=0;
foreach($query as $row){ 
   array_push($copy,"string".i++);
}
$query = $copy;
1 голос
/ 12 февраля 2012

Обратите внимание на "&", это означает, что вы редактируете строку $ и хотите, чтобы изменения продолжались даже после выполнения 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, так как не требует дополнительных затрат на вызов функции. Используйте array_push , если вы хотите добавить как 5 или более элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...