Как искать Массив несколько значений в PHP?

В режиме выпуска издержки минимальны.

, Если Вы не собираетесь быть исключениями использования для управления потоком (пример, нелокальные выходы) рекурсивным способом, я сомневаюсь, что Вы будете в состоянии заметить различие.

21
задан kenorb 3 March 2017 в 16:05
поделиться

4 ответа

Вы хотите array_keys со значением поиска

array_keys($list[0], "2009-09-09");

, которое вернет массив ключей с указанным значением, в вашем случае [0, 2]. Если вы также хотите найти дубликаты, вы можете сначала выполнить проход с помощью array_unique , а затем перебрать этот массив, используя array_keys в оригинале; все, что возвращает массив длиной> 1, является дубликатом, а результатом являются ключи, в которых хранятся дубликаты. Что-то вроде ...

$uniqueKeys = array_unique($list[0])

foreach ($uniqueKeys as $uniqueKey)
{
  $v = array_keys($list[0], $uniqueKey);

  if (count($v) > 1)
  {
    foreach ($v as $key)
    {
      // Work with $list[0][$key]
    }

  }
}
27
ответ дан 29 November 2019 в 20:03
поделиться

Следующая комбинация вызовов функций даст вам все повторяющиеся значения:

$a = array(1, 1, 2, 3, 4, 5, 99, 2, 5, 2);

$unique     = array_unique($a); // preserves keys
$diffkeys   = array_diff_key($a, $unique);
$duplicates = array_unique($diffkeys);

echo 'Duplicates: ' . join(' ', $duplicates) . "\n"; // 1 2 5
7
ответ дан 29 November 2019 в 20:03
поделиться

В руководстве по PHP в разделе Возвращаемое значение документации по функции array_search () указано, что вы можете использовать array_keys ( ) для достижения этой цели. Вам просто нужно указать второй параметр:

$keys = array_keys($list[0], "2009-09-09");
2
ответ дан 29 November 2019 в 20:03
поделиться

В array_search () мы можем прочитать:

Если иголка найдена в стоге сена, подробнее чем один раз, первый соответствующий ключ вернулся. Вернуть ключи для всех соответствующие значения, используйте array_keys () с необязательный параметр search_value вместо этого.

10
ответ дан 29 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: