如何将多个数组组合到一个新数组中?
我将$_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'];
PHP有一个函数来做到这本名为array_merge,并用它在你的情况,你会做到这一点:
$array = array_merge($_POST, $_FILES);
有一个过滤器:'$ list = array('name','type','size','extension','filetime');' – hakre 2011-12-22 19:43:35
要提及您可以合并这样的数组: $ result = $ array2 + $ array1; 等于 $ result = array_diff_key($ array1,$ array2)+ $ array2; 这是更多的情况下,你不必担心同一个键是阵列 – FreeCandies 2011-12-23 09:38:48
你能给的一个例子阵列如何看待被合并之前,以及他们在结合后应该如何看待? – Jrod 2011-12-22 19:41:20