-1

我有一个问题,我得到了一个数组,它是动态生成的并且有一个随机值,数组长度可能是可变的,并不总是相同,我的问题是我必须检查数组值并查看是否有相同的值, 为实例:

$arr = [1,1,1,4]; //check how many values are the same [PHP CODE]

我以前尝试过使用 in_array() 但我没有明确的好方法来做到这一点。

if (in_array($result, $arr)) {
   echo "in array";
}
4

3 回答 3

2

您可以使用print_r(array_count_values($arr))来查看每个数字在数组中出现的次数。

于 2013-10-13T22:57:37.997 回答
1

尝试这个:

<?php
        $array = array(1, "hello", 1, "world", "hello");
        $arr_count = array_count_values($array);

        $count = 0;
        $val_arr = array();
        foreach($arr_count as $key => $val)
        {
            if($val > 1)
            {
                $count++;
                $val_arr[] = $key;
            }
        }

        if($count == 0)
        {
            echo 'Array has no common values.';
        }
        else {
            echo 'Array has '.$count.' common values:';

            foreach($val_arr as $val)
            {
                echo "<b>".$val."</b> ";
            }
        }        
        ?>

使用您的数组代替 $array 变量。

于 2013-10-14T05:49:15.823 回答
1

array_count_values

就是你要找的!

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

//prints
Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

http://php.net/manual/en/function.array-count-values.php

于 2013-10-13T23:01:36.210 回答