这是我的问题,假设我有两个数组,每个都有一个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做到这一点?
提前谢谢..
答案 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;
}
}
}
}