我猜测这个函数在PHP中的确切工作: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
中。但是,如果第一个索引必须为0,为什么$matches
是一个二维数组呢?不应该像$matches[1]
那样吗? (但它没有用)
如何利用下一个索引?
答案 0 :(得分:1)
“第一个索引必须为0”,因为这是“整个匹配”的索引。索引1将由第一个子模式,如果你有任何。索引2第二个子模式,依此类推。
可以使用PREG_*_ORDER
常量调整此行为,请参阅docs。