preg_match_all drucken *alle* Spiele
Ich drucken müssen alle Spiele mit preg_match_all.
$search = preg_match_all($pattern, $string, $matches);
foreach ($matches as $match) {
echo $match[0];
echo $match[1];
echo $match[...];
}
Das problem ist, ich weiß nicht, wie viele übereinstimmungen es in meinen string, und auch wenn ich wusste, und wenn es 1000, das wäre ziemlich dumm ist, geben all jene $match[]
's.
InformationsquelleAutor | 2009-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
$match[0]
,$match[1]
usw., Elemente werden nicht die einzelnen Spiele, Sie sind "fängt".Unabhängig davon, wie viele Spiele es gibt, die Anzahl der Einträge in
$matches
ist konstant, weil es ist basierend auf dem, was Sie sind auf der Suche für, nicht die Ergebnisse. Es gibt immer mindestens einen Eintrag, plus eins mehr für jede paar-capturing Klammern im Suchmuster.Zum Beispiel, wenn Sie tun:
Spiele haben nur zwei Elemente, auch wenn drei matches gefunden wurden.
$matches[0]
wird ein array mit "a1", "b12" und "c123" (das gesamte match für jedes Element) und$matches[1]
enthält nur die erste Aufzeichnung für jedes Element, d.h., "1", "12" und "123".Ich denke, was Sie wollen, ist etwas mehr wie:
Wird drucken Sie die erste capture-Ausdruck von jeder passenden string.
InformationsquelleAutor Tim Sylvester
Tut print_r($Treffer) Ihnen, was Sie wollen?
InformationsquelleAutor Andy E
Konnte man Schleife rekursiv. Dieses Beispiel erfordert SPL und PHP 5.1+ über RecursiveArrayIterator:
InformationsquelleAutor Kevin Peno