首页 > 解决方案 > 使用php进行数组比较

问题描述

代码不会停止运行。我需要比较两个数组以匹配每个字符串。两个不同大小的数组。

第一个数组:

Array ( 
    [0] => '+2+x=1' 
    [1] => '+x+2=1' 
    [2] => 'x+2=1' 
    [3] => '-1+2=7' 
    [4] => '+2-1=7' 
    [5] => '+x+27=3+2' 
    [6] => 'x+27=3+2' 
    [7] => 'x=3' 
    [8] => '+x=3' 
)

第二个数组:

Array ( 
    [0] => '+x+2=1' 
    [1] => '-1+2=7' 
    [2] => '+x+27=3+2' 
    [3] => '+x=3' 
) 

我当前的代码:(第一个数组 = $step_1,第二个数组 = $arr_result)

$count1 = 0;

for ($k=0; $k < count($arr_result); $i++) {
    for ($l=0; $l < count($step_1); $l++) { 
        if (strcmp($arr_result[$k],$step_1[$l]) == 0) {
            $count1++;      
            echo "$k "."$l ".strcmp($arr_result[$k],$step_1[$l])."<br>";
        }  
    }
}

提前致谢。

标签: phparrays

解决方案


使用函数array_intersect,它将返回一个具有两个数组匹配值的数组:

$array1 = ['foo', 'bar', 'abc'];  
$array2 = ['foo', 123, 456, 789, 4654, 'abcdef'];

$matching_values = array_intersect($array1, $array2);

$matching_values 将导致

Array
(
    [0] => foo
)

编辑:请注意,在您的 FOR 中您使用 $k 但您增加了 $i ...这就是您的代码不会停止的原因;

对于 ($k=0; $k < 计数($arr_result); $i++)


推荐阅读