我在表中有2个字段
filed1 | filed2
ahmed,join,maya,omar | omar,maya
我通过2数组获取数据,我想检查$ array1中的每个值是否在$ array2中存在
就我而言:是否$array1[omar]
存在$array2
,是否$array1[maya]
存在$array2
.. elc
那是我的代码,没有用...里面有什么问题?
$query = $db->query_first("SELECT * FROM table ");
$array1 = explode(",",$query[filed1]);
$array2 = explode(",",$query[filed2]);
foreach($array1 as $value)
{
if (in_array($value,$array2))
{
//true
}else{
//false
}
}
array1的输出:
Array ( [0] => maya [1] => omar [2] => ahmed [3] => join)
array2的输出:
Array ( [0] => omar [1] => maya )
我知道问题的原因,而不是代码中的原因...字段内容分别位于每行的基值,因此使用str_replace删除该行
$query = $db->query_first("SELECT * FROM table ");
$array1 = explode(",",$query[filed1]);
$array1 = str_replace("\n","",$array1);
$array2 = explode(",",$query[filed2]);
$array2 = str_replace("\n","",$array2);
foreach($array1 as $value)
{
if (in_array($value,$array2))
{
//true
}else{
//false
}
}
正如@MarkBaker所说,您想使用array_intersect:
array_intersect()返回一个数组,其中包含所有自变量中存在的所有array1值。请注意,密钥被保留。
在您的情况下:
$array1 = explode(",",$query[filed1]);
$array2 = explode(",",$query[filed2]);
$intersect = array_intersect($array1, $array2);
根据您的要求,要检查此数组是否为空,请执行以下操作:
if (empty($intersect))
echo 'It is empty';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句