我想检查一下将数据输入数据库。检查如下
$implode1 = "cat, dog, chicken";
$implode2 = "cow, goat, cat";
如果变量$implode1
中的cat也包含在变量$implode2
中,则它应显示警告消息。如何编码上述问题?
请帮帮我:(
答案 0 :(得分:2)
您可以将explode
字符串添加到数组中,然后使用array_intersect
返回两者中存在的值,例如:
$string1 = 'cat, dog, chicken';
$string2 = 'cow, goat, cat';
$compare = explode(', ', $string1);
$against = explode(', ', $string2);
$matches = array_intersect($compare, $against);
答案 1 :(得分:2)
$implode1 = "cat, dog, chicken";
$implode2 = "cow, goat, cat";
$imp1 = explode(', ',$implode1);
$imp2 = explode(', ',$implode2);
foreach($imp1 as $val){
if(in_array($val,$imp2)) {
echo "$val is present in $implode2";
}
}
答案 2 :(得分:0)
循环第一个数组并检查第二个数组中是否存在任何元素 - 如下所示:
foreach($implode1 as $val){
if(in_array($val,$implode2)) {
echo "$val is exists in the implode2 array";
}
}
哦,对不起,这些只是字符串。首先爆炸它们:
arr_implode1 = explode(", ",$implode1)
arr_implode1 = explode(", ",$implode2)
答案 3 :(得分:0)
如果值已经存在,您可以在将值插入数据库之前进行检查:
if not exists (select * from TestTable where column NOT IN {$implode})
begin
...Do something here!!
end
答案 4 :(得分:0)
创建一个能够以数组的形式从每个字符串中提取值的函数,然后获取交集。如果它不是FALSE,则有一个交叉点,警告也是如此:
$values = function($string) {
return explode(', ', $string);
};
if (array_intersect($values($implode1), $values($implode2))) {
trigger_error('Values intersect', E_USER_WARNING);
}