2011-12-22 275 views
0

我將$_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

回答

1

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

相關問題