如何编码以检查数组相交的数据?
Posted
技术标签:
【中文标题】如何编码以检查数组相交的数据?【英文标题】:how coding to check the data with array Intersect? 【发布时间】:2012-11-21 03:16:10 【问题描述】:我想检查是否将数据输入数据库。检查如下
$implode1 = "apple, orange, banana";
$implode2 = "banana, mango";
如果变量$implode1
中的香蕉也包含在变量$implode2
中,则应显示警告消息。
如果变量的值为空,则执行将被忽略。示例:
$implode1 = "";
$implode2 = "";
如何为上述问题编写代码?
请帮帮我:(
【问题讨论】:
我们期待什么? 4个答案,他没有赞成或接受任何一个...... 【参考方案1】:$implode1 = "apple, orange, banana";
$implode2 = "banana, mango";
$implode1Array = explode(", ", $implode1);
$implode2Array = explode(", ", $implode2);
$result = array_intersect($implode1Array, $implode2Array);
if(count($result) > 0)
exit('Error!');
【讨论】:
【参考方案2】:通常我会假设你所说的 cat 是指串联,但在这里似乎不合适。但是,假设这就是您的意思,您只需检查两个变量中的相同连接字符(逗号),如下所示:
if ( stristr($implode1, ",") && stristr($implode2, ",") )
// error
else
// success, do something
但是,假设您的意思是在两个变量中输入了相同的项目,在这种情况下是水果,您可以这样检查:
$im1 = explode(",", $implode1);
$im2 = explode(",", $implode2);
foreach($im1 as $i)
if ( array_search($i, $im2) )
// error
else
// success, do something
您当然可以只在两个字符串中搜索给定值,但我认为这不是您想要的。但假设是这样,代码如下:
$duplicate = "apple"; // the item you are searching for a duplicate of
if ( stristri($implode1, $duplicate) && stristr($implode2, $duplicate) )
// error
else
// success, do something
【讨论】:
【参考方案3】:if (count(array_intersect)) /* warning */
【讨论】:
【参考方案4】:你可以使用php的array_intersect
函数来获取交集(见http://php.net/manual/en/function.array-intersect.php):
$arr1 = explode(", ", "apple, orange, banana");
$arr2 = explode(", ", "banana, mango");
$intersection = array_intersect($arr1, $arr2);
if (count($intersection) > 0)
echo "WARNING: the lists have a non-empty intersection!";
【讨论】:
以上是关于如何编码以检查数组相交的数据?的主要内容,如果未能解决你的问题,请参考以下文章