从php中的逗号分隔字符串中删除特定关键字

时间:2012-12-06 08:21:40

标签: php mysql

我需要从逗号分隔形式的数据库中删除图像名称

我用下面的方法..

姓名在数据库中:31.jpg,31 copy.jpg,110 copy.jpg,110.jpg,110 copy-1.jpg,

爆炸后:

Array
(
    [0] => 31.jpg
    [1] => 31 copy.jpg
    [2] => 110 copy.jpg
    [3] => 110.jpg
    [4] => 110 copy-1.jpg
    [5] => 
)

用逗号删除img名称:110.jpg,

现在结果:31 copy.jpg,110 copy.jpg,110.jpg,110 copy-1.jpg,

但为什么结果会110.jpg

上述方法的代码。

<?php

    require("include/config.inc.php");

    $parent_img_id = 184;
    $child_imgs_id = 1221;
    $delimg = '110.jpg';

    $getInfoChild_imgs = mysql_query("select * from parent where parent_img_id = '$parent_img_id' and child_imgs_id = '$child_imgs_id' and child_imgs like '%$delimg%'") or die(mysql_error());

        if(mysql_num_rows($getInfoChild_imgs)>0){
            $result = mysql_fetch_array($getInfoChild_imgs);

            $child_imgs_name =$result['child_imgs'];
            $child_imgs_name = explode(',', $child_imgs_name); // Explode into array


            $deleteImgName = $delimg.',';

            unset($child_imgs_name[ array_search($deleteImgName, $child_imgs_name) ]);

            $child_imgs_name = implode(',',$child_imgs_name); 

     }
?>

3 个答案:

答案 0 :(得分:4)

$deleteImgName110.jpg,

数组没有110.jpg,。它有110.jpg

使用,进行爆炸时,元素不包含任何逗号。

$deleteImgName = $delimg.','更改为$deleteImgName = $delimg;

答案 1 :(得分:1)

从删除图像变量中删除逗号。我没有检查,但是因为你爆炸了逗号,它们将从数组中消失

$deleteImgName = $delimg; #.',';

答案 2 :(得分:0)

您正在搜索$deleteImgName,其中附加了一个“,”,它在爆炸字符串后不是数组条目的一部分。