Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php,如何比较来自不同查询的2个数组?_Php_Mysql_Pattern Matching - Fatal编程技术网

php,如何比较来自不同查询的2个数组?

php,如何比较来自不同查询的2个数组?,php,mysql,pattern-matching,Php,Mysql,Pattern Matching,我有两个查询,我通过执行whyle循环返回一些数据 从第一个查询开始,如果我执行print\r($final\u key)我得到: hey1 hey2 hey3 从第二个开始,如果我执行print\r($final\u key2)我得到: hey1 test hey2 test1 hey3 我试图做的是比较这两个数组并检查匹配的单词 而且我不能直接从数据库里做 有什么想法吗 谢谢 编辑: 这是我的问题1: while ($keywords = mysql_fetch_array($keys1

我有两个查询,我通过执行
whyle
循环返回一些数据

从第一个查询开始,如果我执行
print\r($final\u key)我得到:

hey1
hey2
hey3
从第二个开始,如果我执行
print\r($final\u key2)我得到:

hey1 test
hey2 test1
hey3
我试图做的是比较这两个数组并检查匹配的单词 而且我不能直接从数据库里做

有什么想法吗

谢谢

编辑: 这是我的问题1:

while ($keywords = mysql_fetch_array($keys1, MYSQL_ASSOC)){
    foreach ($keywords as $key) {
        $plus = '+';
        $pos = strripos($key, $plus);
            if ($pos === false) { } else { 
                $clean_plus = preg_replace("/[\+]/", '', $key);
                $final_key = str_replace("'", "", $clean_plus);
                print_r($final_key);
                echo '<br>';
            }


    }
} 
while($keywords=mysql\u fetch\u数组($keys1,mysql\u ASSOC)){
foreach($keywords作为$key){
$plus='+';
$pos=strripos($key,$plus);
如果($pos==false){}else{
$clean\u plus=preg\u replace(“/[\+]/”,“”,$key);
$final_key=str_replace(';“,”,$clean_plus);
打印(最终密钥);
回声“
”; } } }
第二个:

 <?php
 while ($keywords = mysql_fetch_array($keys)){
if($keywords['kword'] != ''){
    echo $keywords['kword'];
 } } ?>


我正在尝试将
$final_key
$keywords['kword']匹配

在一个数组上循环,并在每次迭代中循环另一个数组

<?php
foreach($array as $item){
    foreach($array2 as $item2){
        if($item == $item2){
            $array3[] = $item;
        }
    }
}
?>

这将创建一个匹配数组,然后您可以随意使用它。

使用它返回一个包含两个数组中的值的数组


如果希望键匹配,请使用。

使用
array\u intersect

array_intersect($array1, $array2, ...);
从文件中:

array_intersect()返回一个数组,该数组包含所有参数中存在的array1的所有值。请注意,关键点是保留的


你能给我们两个阵列的样品吗?ie:
array(“one”=>1,“two”,“three”)
所以你想要一个返回“hey3”的函数,因为这是两个数组中唯一完全相同的词?你真的不能只进行DB连接吗?请看我的编辑。加入是毫无疑问的看起来root45有解决方案。。。哎呀,我明白了:array#u diff()[function.array diff]:参数#2不是数组你需要更清楚你的变量类型是什么。首先,你可以说你有两个数组。编辑结束时,看起来您正在比较两个字符串。是哪一个?对不起,我猜它们是字符串如果它们都是字符串,那么为什么不进行标准比较
==
?如果一个是数组,另一个是字符串,则可以使用
array\u search
。如果要比较两个由空格(或另一个分隔符)分隔的字符串中的子字符串,可以使用将每个子字符串作为数组元素。然后使用
array\u intersect
。如果这就是你想做的,你应该编辑你的问题,因为它现在看起来肯定不是这样的。我知道:array_diff()[function.array diff]:Argument#2不是数组
array_intersect
对数组有效;如果您试图查看数组中是否存在字符串,那么使用
array\u search
可能是一个更好的函数,但如果是这样,您的问题不清楚您在比较什么。