Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 显示重复结果的嵌套foreach循环_Php_Arrays_Foreach_Nested - Fatal编程技术网

Php 显示重复结果的嵌套foreach循环

Php 显示重复结果的嵌套foreach循环,php,arrays,foreach,nested,Php,Arrays,Foreach,Nested,我有一个函数,应该使用array\u intersect函数将数组匹配在一起。我正在尝试将一个产品名称与多个商家可能提供的同名产品进行匹配。我现在的问题是我正在使用嵌套的foreach循环,每当我运行它时,循环总是无限的,它会打印重复的结果 下面是函数: function get_matching_product3(&$catalogue, $stock) { $stockSmallCase = array_map('strtolower', $stock); $cat

我有一个函数,应该使用
array\u intersect
函数将数组匹配在一起。我正在尝试将一个产品名称与多个商家可能提供的同名产品进行匹配。我现在的问题是我正在使用嵌套的
foreach
循环,每当我运行它时,循环总是无限的,它会打印重复的结果

下面是函数:

function get_matching_product3(&$catalogue, $stock) {

    $stockSmallCase = array_map('strtolower', $stock);
    $catalogueSmallCase = array_map('strtolower', $catalogue);

foreach ($catalogueSmallCase as $key => $value)
{
   $catalogueKey = $key;
   $catalogueValue = $value;
   $catalogueTokens = explode (' ', $catalogueValue);

    foreach ($stockSmallCase as $key => $value) {
        $stockKey = $key;
        $stockValue = $value;
        $stockTokens = explode (' ', $stockValue);

        $match= array_intersect($stockTokens, $catalogueTokens);
        $m = count($match);    
        $t = count($catalogueTokens);  

            //echo $m;
            //echo $t;

        if (($m > 1) && (($m / $t) * 100) >= 90) {        
            //print_r($match);
            echo = $catalogueKey." ".$stockKey;
            //echo "</br>";
            //echo $stockKey;


        }       
    }
}

  return null;
}
函数获取匹配的产品3(&$catalog,$stock){
$stockSmallCase=array_map('strtolower',$stock);
$catalogesmallcase=array_map('strtolower',$catalog);
foreach($catalogesmallcase作为$key=>$value)
{
$catalotekey=$key;
$catalotevalue=$value;
$catalogetokens=爆炸(“”,$catalogetevalue);
foreach($stockSmallCase作为$key=>$value){
$stockKey=$key;
$stockValue=$value;
$stockTokens=爆炸(“”,$stockValue);
$match=array\u intersect($stockTokens,$catalogetokens);
$m=计数($match);
$t=计数($catalogetokens);
//亿美元;
//echo$t;
如果($m>1)&($m/$t)*100)>=90{
//打印(匹配);
echo=$CataloteKey.“.”$stockKey;
//回声“
”; //echo$stockKey; } } } 返回null; }
您有

foreach ($catalogueSmallCase as $key => $value)

我认为问题来自$key和$value变量。在循环的某个时候,php可能会误解它们


试着改变它以区分它

如果您需要一些帮助,您需要发布这两个数组(显然是假值)。否则,很难看到它们的样子。
foreach ($stockSmallCase as $key => $value)