PHP array_intersect或in_array然后是MYSQL

时间:2015-03-24 06:48:23

标签: php mysql arrays

需要查找两个数组是否匹配,然后匹配它们匹配的mysql行中的pull数据。我应该使用

 $sql = "SELECT * FROM around";
 $resultsd = $conn->query($sql);
 foreach($resultsd as $rowd) {}

 if (array_intersect($ar1, $ar2)) {
    $sword[] = $rowd['TIM'];
    }

或者我应该使用

 if (in_array($ar1, $ar2)) {
       $sword[] = $rowd['TIM'];
   }

获取类似的数组:

   $ar1[] = $rowd['nim']; 
   $ar2[] = $rowd['nim']; 

然后如何拉动它们匹配的特定行?

我看到它们匹配,并打印出阵列没关系:

Array ( [0] => dcbabcbded ) Array ( [0] => fafeafaebee [1] => afabfdefcbb [2] => dcbabcbded

但是当我尝试回显它们匹配的mysql数据时,我失败了:

 Array ( )  

2 个答案:

答案 0 :(得分:0)

我会使用sql IN子句。

您有一系列客户名称:$a = array('john','rob','paul');

implode array $nms = join(',',$a);

制作sql:'SELECT * FROM tabl WHERE name IN ('.$nms.')';


首先进行数组交集(或者你只需​​要...)以获得所需名称的数组。

答案 1 :(得分:0)

使用$new = array_intersect(Array ( [0] => dcbabcbded ), Array ( [0] => fafeafaebee [1] => afabfdefcbb [2] => dcbabcbded)):然后按照上面的答案中的说明制作有效的SQL。

如果你确定你总是拥有一个或没有值的数组intersen,那么使用第一个数组元素:$ar[0]使用sql WHERE子句创建sql。