Я хотел бы наиболее эффективный способ получить позицию элемента повторяющихся элементов в массиве. Например, если у меня есть:
$example = array('a','b','c','a','a','d');
Поэтому в этом случае "a" находится в положении 0 - 3 - 4.
Я знаю, что мы можем пройти, но я думаю, что это неэффективно. Я был бы признателен, если бы вы могли показать мне лучший способ сделать это.
большое спасибо
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
)
)