2010-07-24 2 views

ответ

76

Есть довольно несколько способов работы с динамическими массивами в 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]); 

Есть еще много способов, это лишь некоторые примеры.

+0

Я просто хочу что-то добавить. Функция array_push должна использоваться только для больших массивов, как описано в описании. Всегда предпочитайте $ array [] = "новый элемент" для небольших вставок. http://php.net/manual/en/function.array-push.php – TivBroc

+0

просто для добавления к вашему очень хорошему ответу '$ array = [];' также является параметром для инициализации массива –

8
$array[] = 'Hi'; 

толкает верхнюю часть массива.

$array['Hi'] = 'FooBar'; 

устанавливает определенный индекс.

1

Вдобавок к прямому доступу к массиву, есть также

array_push - Нажмите один или несколько элементов в конце массива

6

Допустим, вы определили пустой массив:

$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; 
    } 
} 
+0

Откуда вы видите $ element и $ table значения ** SELECT ** ed? –

0

Добавление элементов массива динамически массива и добавление нового элемента в массив

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

Вы должны использовать метод 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 
) 
*/ 
0

просто для удовольствия ...

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

быстрый способ я думаю

 $newArray = array(); 

for($count == 0;$row = mysql_fetch_assoc($getResults);$count++) 
    { 
    foreach($row as $key => $value) 
    { 
    $newArray[$count]{$key} = $row[$key]; 
    } 
} 
1
$arra=array(); 

for($i=0;i<10;$i++) 
{ 
    $arra[$i]=$i; 
} 
+0

Пожалуйста, включите объяснение в свой ответ. –

Смежные вопросы