2011-12-15 112 views
-1

這裏是我用來上傳多張照片與HTML5標記的代碼。foreach變量到數組

foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){ 
    $rand_file_name = rand(1,1000000); 
    if ($_FILES['files']['type'][$key] == "image/jpeg" || $_FILES['files']['type'][$key] == "image/gif" || $_FILES['files']['type'][$key] == "image/png" || $_FILES['files']['type'][$key] == "image/JPEG" || $_FILES['files']['type'][$key] == "image/GIF" || $_FILES['files']['type'][$key] == "image/PNG") { 
     if ($_FILES['files']['size'][$key] < 512000){ 
      move_uploaded_file($tmp_name, "../../../assets/users/$user_id/photos/$browser_album_id/$rand_file_name.jpg"); 
      $photo_name = $_FILES['files']['name'][$key]; 
      $photo_name = str_replace(".jpg", "", $photo_name); 
      $photo_name = str_replace(".png", "", $photo_name); 
      $photo_name = str_replace(".gif", "", $photo_name); 
      $insert_database = mysql_query("INSERT INTO photo_album_photos (random_photo_name,belonging_album_id,photo_name) VALUES ('$rand_file_name','$browser_album_id','$photo_name')"); 
      $num_files_added++; 
     } 
    } 
} 

$ num_files_added將指望有多少文件被添加。

我想實現的是將$ rand_file_name(s)收集到一個數組中。每個圖像都有一個隨機名稱,因此一個圖像可能是812532.jpg,接下來可能是246546.jpg。

我想插入文件名到數據庫的數組中。所以上面的例子將在一個數組中。例如array(812532,246546);

當然,我不希望任何人直接爲我編碼,只是幫助和指導! :)

+0

對於您正在尋找的內容已足夠 - > $ arr_files [] = $ rand_file_name; – B4NZ41 2011-12-15 21:15:31

回答

1

foreach之前,引入了可變$file_names = array();爲空白陣列

,並在foreach循環,試試這個:

$file_names[] = $rand_file_name; 

然後,您可以訪問將被存儲在陣列變量$file_names。 :)

爲了讓他們到一個逗號分隔字符串

foreach循環之前介紹$file_names = ''

然後在循環,這樣做:

$file_names .= $rand_file_name . ','; 

和關閉foreach循環之後,這樣的:

$file_names = substr($file_names,0,-1); 
+0

當我回應這個問題時,是否應該說數組? – Frank 2011-12-15 21:12:46

0

在PHP中,你可以不指定其索引追加到一個數組。

例如,看看這個循環:

for ($i = 0; $i < 100; $i++) 
{ 
    $a[] = "file$i"; 
} 

每次循環執行,該數組$a將包含類似file1一個新的元素,file2file3 ...

希望幫助!

0

$ rand_file_names = array();

$ rand_file_names [] = $ rand_file_name;

我不推薦在數據庫中存儲$ rand_file_names作爲array(812532,246546)。如果這就是你正在尋找的,你應該嘗試serialize