需要查找两个数组是否匹配,然后从匹配的mysql行中提取数据。我应该使用吗
$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 ( )
我会使用sql IN
子句。
您有一组客户名称:$a = array('john','rob','paul');
内爆阵列$nms = join(',',$a);
生成sql:'SELECT * FROM tabl WHERE name IN ('.$nms.')';
首先进行数组交集(或者你只需要..),得到一个所需名称的数组。
使用$new = array_intersect(Array ( [0] => dcbabcbded ), Array ( [0] => fafeafaebee [1] => afabfdefcbb [2] => dcbabcbded))
:然后生成有效的sql,如我上面的回答所述。
如果您确信您一直都有一个或没有值的数组interenct,那么使用sql WHERE
子句只使用第一个数组元素$ar[0]
生成sql。