Masz coś takiego:
gdzie:
$data = 'Ala ma kota, ale kot nie ma Ali';
$matches wygląda tak:
array(2) {
[0]=> array(3) {
[0]=> string(3) "Ala"
[1]=> string(3) "ale"
[2]=> string(3) "Ali" }
[1]=> array(3) {
[0]=> string(1) "a"
[1]=> string(1) "e"
[2]=> string(1) "i" }
}
Jest tak dlatego, że pierwsza tablica zawiera wszystkie ciągi pasujące do całego wzorca, czyli: Ala, ale, Ali.
Natomiast w drugiej jest to, co pasuje do podwzorca (to, co jest pomiędzy ()), czyli: a (bo w Ala jest a), e (bo w ale jest e), i (bo w Ali jest i)
Możesz się pobawić z zagnieżdżonymi i mnogimi podwzorcami, to pomoże ci lepiej to wszystko zrozumieć.
Jest to naprawdę fajna funkcja, wogóle całe wyrażenia regularne to coś świetnego:) Polecam tylko, że trzeba sporo poczytać, żeby coś z tego zaczęło wychodzić