我在表格中有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
}
}
答案 0 :(得分:1)
正如@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';