2010-07-24 65 views
29

我想動態地將數據添加到陣列。動態地將數據添加到陣列

+15

嘿看,有一個PHP陣列文檔:HTTP ://php.net/manual/en/language.types.array.php(搜索'php數組'時首先點擊) – 2010-07-24 12:14:55

回答

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 [] =「new item」。 http://php.net/manual/en/function.array-push。php – TivBroc 2015-08-02 21:34:34

+0

只是添加到你的很好的答案,'$ array = [];'也是數組初始化的一個選項 – 2017-02-27 22:16:23

8
$array[] = 'Hi'; 

推到數組的頂部。

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

設置特定索引。

3

喜歡這張?:

$array[] = 'newItem'; 
1

在additon直接訪問該陣列,還存在

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? – 2018-01-24 14:34:26

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添加VALU E或數組數組存在

$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

請在答案中附上解釋。 – 2015-11-16 17:11:20