переменные foreach в массив - PullRequest
       5

переменные foreach в массив

0 голосов
/ 16 декабря 2011

Вот код, который я использую для загрузки нескольких фотографий с тегом 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 в массив.Каждому изображению присваивается случайное имя, поэтому одно изображение может быть 812532.jpg, а другое, возможно, 246546.jpg.

Я хотел бы вставить имена файлов в базу данных в виде массива.Таким образом, приведенные выше примеры будут в массиве.например, массив (812532,246546);

Конечно, я не хочу, чтобы кто-то написал это прямо для меня, просто помощь и руководство!:)

Ответы [ 3 ]

1 голос
/ 16 декабря 2011

Перед foreach введите переменную $file_names = array(); в виде пустого массива

и в цикле foreach попробуйте следующее:

$file_names[] = $rand_file_name;

Затем вы можете получить доступ к массивуэто будет храниться в переменной $file_names.:)

Чтобы превратить их в разделенную запятыми строку

Введите $file_names = '' перед циклом foreach.

Затем в цикле сделайте это:

$file_names .= $rand_file_name . ',';

И после закрытия цикла foreach это:

$file_names = substr($file_names,0,-1);
0 голосов
/ 16 декабря 2011

$ rand_file_names = array ();

$ rand_file_names [] = $ rand_file_name;

Я бы не рекомендовал хранить $ rand_file_names как array(812532,246546) в базе данных. Если это то, что вы ищете, попробуйте serialize .

0 голосов
/ 16 декабря 2011

В PHP вы можете добавить массив, не указав его индекс.

Например, посмотрите на этот цикл:

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

Каждый раз при выполнении цикла массив $a будет содержать новый элемент, такой как file1, file2, file3 ...

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...