2010-07-24 67 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