最有效的方法来查找重复值的位置php

时间:2015-05-27 22:52:21

标签: php

我想以最有效的方式获取数组中重复元素元素的位置。例如,如果我有:

$example = array('a','b','c','a','a','d');

所以在这种情况下' a'位于0 - 3 - 4位置。

我知道我们可以循环,但我认为它是无效的。如果你能告诉我更好的方法,我将不胜感激。

非常感谢

1 个答案:

答案 0 :(得分:3)

array_keys(),带有可选的search_value参数

$example = array('a','b','c','a','a','d');

print_r(array_keys($example, "a"));

输出:

Array ( [0] => 0 [1] => 3 [2] => 4 ) 

如果你没有考虑到特定的价值,并希望获得所有价值观的立场:

$example = array('a','b','c','a','a','d');



$out=array();
foreach($example as $k=>$v){

  $out[$v][]=$k;

}
echo '<pre>';

print_r($out);

返回:

Array
(
    [a] => Array
        (
            [0] => 0
            [1] => 3
            [2] => 4
        )

    [b] => Array
        (
            [0] => 1
        )

    [c] => Array
        (
            [0] => 2
        )

    [d] => Array
        (
            [0] => 5
        )

)