Вы можете использовать array_rand()
для возврата случайного ключа из массива $matches
. Возможно, вам придется изменить формат массива, который вы получаете от preg_match_all()
.
Вы можете использовать PREG_PATTERN_ORDER
, затем передать $matches[$x]
в array_rand()
- где $x
- это группа совпадений, которую вы хотите (0 - полное совпадение, 1 - первая подгруппа). В этом случае array_rand()
вернет ключ, и вы можете получить доступ к случайным данным, используя $matches[$x][$rand_key]
.
В качестве альтернативы, используя PREG_SET_ORDER
, вы передадите $matches
в array_rand()
, а затем используйте возвращенный ключ для доступа к любой подгруппе совпадения. $matches[$rand_key][$x]
Обратите внимание, что вы не получаете случайное значение , вы получаете ключ массива для случайного значения. И, как отмечают другие, вы можете просто использовать функцию array_rand()
непосредственно при доступе к массиву, что является простым решением для вырезания / вставки. Однако я надеюсь, что это более длинное объяснение проливает свет на то, что делает код.