将变量转换为数组

时间:2011-12-15 21:05:40

标签: php arrays variables foreach

以下是我用于上传带有HTML5标记的多张照片的代码。

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。

我想将文件名插入数据库中。所以上面的例子将在一个数组中。例如的阵列(812532,246546);

当然,我不希望任何人直接为我编码,只是帮助和指导! :)

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

在PHP中,您可以通过不指定其索引来附加到数组。

例如,看看这个循环:

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

每次循环执行时,数组$a将包含一个新元素,如file1file2file3 ......

希望有所帮助!

答案 2 :(得分:0)

$ rand_file_names = array();

$ rand_file_names [] = $ rand_file_name;

我不建议将$ rand_file_names存储为数据库array(812532,246546)。如果这就是您要找的内容,请尝试serialize