массив php получает позиции определенного значения
У меня есть один массив, и я хочу получить позиции одного определенного значения
Пример:
$my_array = array(0,2,5,3,7,4,5,2,1,6,9);
Мой поиск Номер 5 позиции Номер 5 в массиве были (2 и 6)
Если я вызываю функцию array_search
, всегда возвращает первую позицию в массиве, которая 2.
Есть ли в любом случае возможность получить две или более позиции определенной ценности?
2
4 answers
Используйте array_keys с необязательным параметром поиска, который должен возвращать все ключи.
$matches = array_keys($my_array, 5);
11
Author: christian.thomas, 2012-08-28 12:25:25
Взгляните на array_keys второй параметр. Вы можете получить ключи только соответствующие $search_value
2
Author: Korcholis, 2012-08-28 12:25:36
Просто выполните цикл по массиву:
/* Searches $haystack for $needle.
Returns an array of keys for $needle if found,
otherwise an empty array */
function array_multi_search($needle, $haystack) {
$result = array();
foreach ($haystack as $key => $value)
if ($value === $needle)
$result[] = $key;
return $result;
}
1
Author: Emil Vikström, 2012-08-28 12:24:09
$result = array();
foreach ($array as $key => $value)
{
$result[$value] =implode(',',array_keys($array,$value))
}
echo '<pre>';
print_r($result);
Это даст вам массив со значениями в качестве ключа и их вхождениями в виде значений, разделенных запятой
1
Author: Sumit Neema, 2012-08-28 12:34:23