[英]How to get values separated with comma from database using PHP
我有四个名为逗号的文件,它们分隔在数据库的一个字段中,例如file1
, file2
, file3
, file4
。 视上传的文件而定。 用户最多可以上传4个文件,最少可以上传一个文件。 但是我没办法。 我使用了explode,但是花费的时间太长。
我正在使用此代码:
$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",""]}]
如果您看到此imageArray的最后一个正在获取“”,则表示file1
, file2
, file3
, file4
某个名称丢失,因此我想显示是否没有文件名,这意味着我不想使用“”显示空值
我有一个包含file1,file2,file3,file4的字段,因此,我们将拥有file1,file3,然后剩余的将不在那里,所以我想计算用逗号分隔的文件名,如果file1存在,则应打印,如果file3没有它不应显示为“”
您本可以使用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);
?>
首先,数组中不应有空值。 但是,如果您仍然有任何空值,则可以在此处使用preg_split()
这样的值。
同样,您可以使用array_filter()处理值(null, false,'',0)
除去:
print_r(array_filter($images));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.