从输入字符串中删除所有重复项

时间:2015-03-03 18:44:19

标签: php

我试图在插入之前从标签输入字符串中删除重复的条目 他们进入数据库但我的代码出了问题。标签是分开的 在这个例子中用逗号表示。

form.html

<input type="text" name="tags[usage]" value="{$smarty.post.tags.usage|escape}" />

items.class.php

require_once ROOT_PATH.'/modules/tags.class.php';
$tagsClass = new tags();

foreach($_POST['tags'] as $type=>$tags) {
    $arr = explode(',', $tags);
    foreach($arr as $tag) {
        $tag = trim($tag);

                $tag = array_unique($tag); 

        if($tag != '') {
            $tagID = $tagsClass->getTagID($tag);

            $mysql->query("
                INSERT INTO `items_tags` (
                    `item_id`,
                    `tag_id`,
                    `type`
                )
                VALUES (
                    '".intval($itemID)."',
                    '".intval($tagID)."',
                    '".sql_quote($type)."'
                )
            ");
        }
    }
}       

我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

你在_POST变量中得到一个逗号分隔的字符串到这一行

foreach($_POST['tags'] as $type=>$tags) 

尝试以下代码

$new_array = explode(",", $_POST['tags']);
$new_array = array_unique($new_array);
foreach ($new_array as $value){
//Your code
}