如何使用PHP从数据库中获取逗号分隔的值
我在数据库的一个字段中有四个名为逗号的文件,如如何使用PHP从数据库中获取逗号分隔的值,php,database,php-5.3,php-5.2,Php,Database,Php 5.3,Php 5.2,我在数据库的一个字段中有四个名为逗号的文件,如file1,file2,file3,file4。它可能会根据上传的文件而改变。用户最多可以上传4个文件,至少一个文件。但我没能得到它。我用过爆炸,但时间太长了 我正在使用以下代码: $imagefiles = $row["imagefiles"]; $cutjobs = explode(",", $imagefiles); $cutjobs1 = count($cutjobs); $image1
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",""]}]
如果您看到此imageArray,则最后一个得到“”,这意味着file1
,file2
,file3
,file4
中缺少一个名称,因此我想显示是否有任何文件名不存在,这意味着我不想用“”显示空值
我有一个包含file1、file2、file3、file4的字段,所以我们有file1、file3的时候,剩下的就不存在了,所以我想用逗号分隔文件名,如果file1存在,那么应该打印,如果file3不存在,那么它就不应该显示为“”您可以使用
拆分()
,但它是。因此,您只剩下:
explode()
preg_split()
preg\u split()
可以执行以下操作:
<?php
$encoded_data = json_encode($data);
$images = preg_split('/,/', $encoded_data->imagearray);
?>
资源:
首先,数组中不应该有空值。但是如果仍然有空值,可以使用类似的
preg_split()
之类的方法
类似地,您可以使用来处理值的删除(null,false,,,0)
:
在这个论坛上有这么多答案,完全符合您的要求:,。为什么不使用explode?我是php新手,除了explode还有什么方法可以使用吗?尽管它可能在您的控制范围内,也可能不在您的控制范围内,但这是一个糟糕的数据库设计。每当您在一个数据库列中组合多个项时,拆分它时就会遇到问题。更好的设计是使表包含文件名并连接回主表。您是否理解我在图像数组中的问题您有$imagefiles、$imagefiles1、$imagefiles2、$imagefiles3,如果其中任何一个不存在,则表示它显示为null或“”您不应该首先插入空值。可能是您不理解我的问题,我有一个包含file1、file2、file3、file4的字段,因此我们将有file1、file3,然后剩余的将不存在,因此我想计算文件名,用逗号分隔,如果file1存在,则应打印,如果file3不存在,则不应显示为“”不,你可以看到我是如何做到的,我应该使用数组而不是数组,我应该使用数组\过滤器
<?php
$encoded_data = json_encode($data);
$images = explode(',', $encoded_data->imagearray);
print_r($images);
?>
print_r(array_filter($images));