匹配两个数组并返回与php匹配的值的数量

时间:2014-12-23 05:04:08

标签: php arrays

我有一个值为$array_metaValue

的数组
Array ( [0] => php [1] => ajax [2] => my [3] => profile [4] => java )

和第二个数组包含:$search_res[$e]

php
ajax

但问题是计数值总是错误的。应该是2。

            print_r( $array_metaValue);
            for($e=0;$e<=count($search_res);$e++){
            echo '<br>'.$search_res[$e].'<br>';
            echo '<pre>';

            $key = array_search($search_res[$e],$array_metaValue);

            if(!$key==0)
            {
                $count=$count+1;
            }

$ count现在节省1。

3 个答案:

答案 0 :(得分:2)

使用

$count = count(array_intersect($array_metaValue, $search_res));

array_intersect返回一个数组,其中包含两个输入数组中的元素。

您的代码存在的问题是您需要测试

if ($key !== false)

答案 1 :(得分:1)

试试这个

$arrInp = array('php','ajax','my','profile','java');
$arrSearch = array('php','ajax');
$count = 0;
foreach ($arrSearch as $key => $value) {
    if(in_array(trim($value), $arrInp))
        $count++;
}
echo $count;

答案 2 :(得分:0)

<?php
$array_metaValue=array('php','ajax','profile','java');
$search_res=array('php','ajax');
print_r($array_metaValue);
$count=0;
for($e=0;$e<count($search_res);$e++){
            echo '<br>'.$search_res[$e].'<br>';

           $key = array_search($search_res[$e],$array_metaValue);

            echo 'Key value =>'.$key. " ";
            if($key>=0)
            {
                $count=$count+1;
                 echo 'Count value =>'.$count;
            }

      }      


?>

enter image description here