如何将多个数组组合到一个新数组中?

问题描述:

我将$_POST$_FILES变量保存到我的对象newUpload中的对象属性中。我正在尝试生成我的SQL更新语句,但我在组合数组时遇到了问题。我如何创建一个包含多个数组的数组?全局关键字很混乱,似乎应该避免?如何将多个数组组合到一个新数组中?

$array = array(); 
foreach ($this->post as $value) { 
    array_push($array, $value); 
} 
foreach ($this->files as $key => $value) { 
    $list = array('name', 'type', 'size', 'extension', 'filetime'); 
    if (in_array($key, $list)) { 
     array_push($array, $value); 
    } 
} 
$array .= $this->moved['filepath']; 
echo $array; 

UPDATE: 错误使用array_push代替$array[] = $value。我认为数组的范围对于foreach循环是本地的,但array_push函数是错误的。下面的代码工作。衷心感谢大家 - 您的评论确实帮助我想出了解决方案。

foreach ($this->files as $key => $value) { 
    $array2 = array('name', 'type', 'size', 'extension', 'filetime'); 
    if (in_array($key, $array2)) { 
     $array[] = $value; 
    } 
}   
$array = array_merge($array, $this->post); 
$array[] = $this->moved['filepath']; 
+0

你能给的一个例子阵列如何看待被合并之前,以及他们在结合后应该如何看待? – Jrod 2011-12-22 19:41:20

PHP有一个函数来做到这本名为array_merge,并用它在你的情况,你会做到这一点:

$array = array_merge($_POST, $_FILES); 
+1

有一个过滤器:'$ list = array('name','type','size','extension','filetime');' – hakre 2011-12-22 19:43:35

+0

要提及您可以合并这样的数组: $ result = $ array2 + $ array1; 等于 $ result = array_diff_key($ array1,$ array2)+ $ array2; 这是更多的情况下,你不必担心同一个键是阵列 – FreeCandies 2011-12-23 09:38:48