如何使用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));