Я хочу добавить данные в массив динамически.
Существует несколько способов работы с динамическими массивами в PHP. Инициализировать массив:
$array = array();
Добавить в массив:
$array[] = "item"; $array[$key] = "item"; array_push($array, "item", "another item");
Удалить из массива:
$item = array_pop($array); $item = array_shift($array); unset($array[$key]);
Есть еще много способов, это лишь некоторые примеры.
$array[] = 'Hi';
толкает верхнюю часть массива.
$array['Hi'] = 'FooBar';
задает конкретный индекс.
Допустим, вы определили пустой массив:
$myArr = array();
Если вы хотите просто добавить элемент, например «Новый элемент в массив», напишите
$myArr[] = 'New Element to Array';
если вы вызываете данные из базы данных, ниже код будет работать нормально
$sql = "SELECT $element FROM $table"; $query = mysql_query($sql); if(mysql_num_rows($query) > 0)//if it finds any row { while($result = mysql_fetch_object($query)) { //adding data to the array $myArr[] = $result->$element; } }
Вы должны использовать метод array_push для добавления значения или массива в массив
$stack = array("orange", "banana"); array_push($stack, "apple", "raspberry"); print_r($stack); /** GENERATED OUTPUT Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry ) */
Как это?:
$array[] = 'newItem';
В дополнение к прямому доступу к массиву существует также
array_push
– array_push
один или несколько элементов на конец массива
$arra=array(); for($i=0;i<10;$i++) { $arra[$i]=$i; }
Добавление динамических элементов массива в массив и добавление нового элемента в массив
$samplearr=array(); $count = 0; foreach ($rslt as $row) { $arr['feeds'][$count]['feed_id'] = $row->feed_id; $arr['feeds'][$count]['feed_title'] = $row->feed_title; $arr['feeds'][$count]['feed_url'] = $row->feed_url; $arr['feeds'][$count]['cat_name'] = $this->get_catlist_details($row->feed_id); foreach ($newelt as $cat) { array_push($samplearr, $cat); } ++$count; } $arr['categories'] = array_unique($samplearr); //,SORT_STRING $response = array("status"=>"success","response"=>"Categories exists","result"=>$arr);
просто для удовольствия …
$array_a = array('0'=>'foo', '1'=>'bar'); $array_b = array('foo'=>'0', 'bar'=>'1'); $array_c = array_merge($array_a,$array_b); $i = 0; $j = 0; foreach ($array_c as $key => $value) { if (is_numeric($key)) {$array_d[$i] = $value; $i++;} if (is_numeric($value)) {$array_e[$j] = $key; $j++;} } print_r($array_d); print_r($array_e);
Самый быстрый способ, я думаю
$newArray = array(); for($count == 0;$row = mysql_fetch_assoc($getResults);$count++) { foreach($row as $key => $value) { $newArray[$count]{$key} = $row[$key]; } }