Я предполагаю, что о точной работе этой функции в PHP: preg_match_all
preg_match_all объяснение
$var = "Example";
$n = preg_match_all('/[AEIOU]/i', strtoupper($var), $matches);
echo "$n<p>"; // Output: 3
echo $matches[0][1]; // Output: A
Это почти совершенно ясно мне: Найти все матчи гласные в переменной $var
и поместить их количество в $n
, в то время как найденные совпадения идут в переменной $matches
. Но почему $matches
является двумерным массивом, если первый индекс должен быть 0? Разве это не должно быть что-то вроде $matches[1]
? (но он не работает)
Как я могу использовать следующие индексы?
«Массив всех совпадений в многомерном массиве, упорядоченный по флагам». - из документов. Читайте о флажках. http://us1.php.net/manual/en/function.preg-match-all.php – Jessica
«Потому что он был спроектирован таким образом, чтобы рассчитывать на ответ?) '$ matches [1..n]' очень полезно, когда вам приходится использовать группы захвата. – raina77ow
Обратите внимание, что модификатор i здесь бесполезен –