如何比较2个数组值字符串,并使用PHP找到相同的值或特定值

时间:2016-03-21 08:11:47

标签: php

这是我的问题,假设我有两个数组,每个都有一个string类型的值,如下所示:

$array1 =array(".dropdown");
$array2 =array(".dropdown-menu > li > a:hover", ".dropdown > li > a:hover", ".dropdown", ".dropdown,.navbar-nav", ".navbar-nav");

我想获得相同或特定数组的值,我尝试使用以下脚本:

foreach($array1 as $value1){
    foreach($array2 as $value2){
        if(stristr($value2, $value1) !== false){
             echo $value2;
             eho "<br />";
        }
    }
}

结果是:

.dropdown-menu > li > a:hover
.dropdown > li > a:hover
.dropdown
.dropdown,.navbar-nav

我不想要.dropdown-menu> li> a: hover.dropdown-blablabla,只是为了输出:

.dropdown > li > a:hover
.dropdown
.dropdown,.navbar-nav

如何用PHP做到这一点?

提前谢谢..

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

foreach($array1 as $value1){
    foreach($array2 as $value2){
         $tmp = explode(" ",$value2);
         foreach($tmp as $part_value){
             if($value1 == $part_value){
                 echo $value2;
                 echo "<br />";
             }
         }
     }
}

它将查看第二个数组元素的各个部分并仅比较它们。

答案 1 :(得分:0)

看起来你要求基于空格匹配的项目,换句话说......

".dropdown" = ".dropdown > li > a:hover" is ok

".dropdown" = ".dropdown-menu > li > a:hover" is not

因为&#34; -menu&#34;附加到&#34; .dropdown&#34;

所以这样的事情应该有用......

$array1 =array(".dropdown");
$array2 =array(".dropdown-menu > li > a:hover", ".dropdown > li > a:hover", ".dropdown", ".dropdown,.navbar-nav", ".navbar-nav");

foreach($array1 as $value1){
    foreach($array2 as $value2){
        foreach (explode(' ',$value2) as $value2part){
            if($value1 == $value2part){
                echo $value2;
                ehco "<br />";
                continue;
            }
        }
    }
}