Как получить значения, разделенные запятой из базы данных, используя переполнение стека

У меня есть четыре файла с именем запятая в одном поле в базе данных, как это file1,file2,file3,file4, Может меняться в зависимости от загрузки файлов. Пользователь может загрузить максимум 4 файла, минимум один файл. Но я не смог получить это. Я использовал взорваться, но это занимает слишком много времени.

Я использую этот код:

      $imagefiles = $row["imagefiles"];$cutjobs = explode(",", $imagefiles);
$cutjobs1 = count($cutjobs);

$image1 = $cutjobs[0];
$image2 = $cutjobs[1];
$image3 = $cutjobs[2];
$image4 = $cutjobs[3];

if (empty($image1)) {
$imagefiles1 = "";
} else {
$imagefiles1 = 'http://projects.santabantathegreat.com/glassicam/uploads/'.$registerid.
"/".$viewjobsid.
"/".$image1;
}

if (empty($image2)) {
$imagefiles2 = "";
} else {
$imagefiles2 = 'http://projects.santabantathegreat.com/glassicam/uploads/'.$registerid.
"/".$viewjobsid.
"/".$image2;
}
if (empty($image3)) {
$imagefiles3 = "";
} else {
$imagefiles3 = 'http://projects.santabantathegreat.com/glassicam/uploads/'.$registerid.
"/".$viewjobsid.
"/".$image3;
}
if (empty($image4)) {
$imagefiles4 = "";
} else {
$imagefiles4 = 'http://projects.santabantathegreat.com/glassicam/uploads/'.$registerid.
"/".$viewjobsid.
"/".$image4;
}
}

$data[] = array( 'imagearray' => array($imagefiles, $imagefiles1, $imagefiles2, $imagefiles3));}
echo json_encode($data);
}

Я получаю вывод, как это:

[{"imagearray":["http:\/\/projects.santabantathegreat.com\/glassicam\/uploads\/60\/30\/file1.jpg","http:\/\/projects.santabantathegreat.com\/glassicam\/uploads\/60\/30\/file2.jpg",""]}]

Если вы видите этот массив изображений, последний получает «», это означает, что некоторые file1, file2, file3, file4 одно имя отсутствует, поэтому я хочу показать, если какого-либо имени файла нет, значит, я не хочу показывать нулевые значения с помощью «»

у меня есть поле с file1, file2, file3, file4, так что раз у нас будет file1, file3, то оставшихся там не будет, поэтому я хочу посчитать имя файла, разделенное запятыми, и, если file1 есть, следует вывести, что если file3 там нет, то это не должно показывать с «»

1

Решение

Вы могли бы использовать split(), но это устарел в PHP 5.3.0. Итак, вместо вас осталось:

  • explode() что существенно быстрее, потому что оно не разбивается на основе регулярного выражения, поэтому строка не должна анализироваться анализатором регулярных выражений.

или же

  • preg_split() который быстрее и использует регулярные выражения PCRE для разбиений регулярных выражений.

С preg_split() Вы могли бы сделать:

<?php
$encoded_data = json_encode($data);
$images = preg_split('/,/', $encoded_data->imagearray);
?>

Я бы сказал, что explode() больше подходит для этого.

<?php
$encoded_data = json_encode($data);
$images = explode(',', $encoded_data->imagearray);
print_r($images);
?>

Ресурсы: В чем разница между split () и explode ()?


У вас не должно быть пустых значений в вашем массиве. Но если у вас все еще есть пустые значения, вы можете использовать preg_split() что-то вроде один здесь.

Точно так же вы можете использовать array_filter () обрабатывать удаление значений (null, false,'',0):

print_r(array_filter($images));

Здесь, на этом форуме, так много ответов, которые делают именно то, что вы спрашиваете: Удалить пустые элементы массива, Удалить пустой элемент значения в массиве.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]