我想以最有效的方式获取数组中重复元素元素的位置。例如,如果我有:
$example = array('a','b','c','a','a','d');
所以在这种情况下' a'位于0 - 3 - 4位置。
我知道我们可以循环,但我认为它是无效的。如果你能告诉我更好的方法,我将不胜感激。
非常感谢
答案 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
)
)