Наиболее эффективный способ найти позиции повторяющихся значений php

1

Я хотел бы наиболее эффективный способ получить позицию элемента повторяющихся элементов в массиве. Например, если у меня есть:

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

Поэтому в этом случае "a" находится в положении 0 - 3 - 4.

Я знаю, что мы можем пройти, но я думаю, что это неэффективно. Я был бы признателен, если бы вы могли показать мне лучший способ сделать это.

большое спасибо

  • 0
    Цикл - ЕДИНСТВЕННЫЙ путь. Даже если вы найдете какую-то встроенную функцию, которая будет делать то, что вы хотите, она будет зацикливаться на массиве.
  • 0
    Большое спасибо. @Jonathan Я просто хочу найти лучший способ сделать это, так что нет необходимости голосовать за мой вопрос, но все равно спасибо ..
Показать ещё 3 комментария
Теги:

1 ответ

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
        )

)
  • 0
    Единственная проблема заключается в том, что вам нужно знать значения в первую очередь.
  • 0
    я интерпретировал, как он, как он указал
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню