⊗ppPmRgSBh 251 of 447 menu

Αλλαγή της συμπεριφοράς της preg_match_all στην PHP

Μέσω της τέταρτης παραμέτρου της συνάρτησης preg_match_all μπορούμε να αλλάξουμε τον τρόπο ομαδοποίησης των groups.

Ας δούμε ποιες τιμές μπορεί να πάρει αυτή η παράμετρος:

Παράμετρος Περιγραφή
PREG_PATTERN_ORDER Προεπιλεγμένη λειτουργία. Τα αποτελέσματα ομαδοποιούνται ανά group - το μηδενικό στοιχείο του πίνακα περιέχει τα μηδενικά groups, το πρώτο στοιχείο του πίνακα περιέχει τα πρώτα groups και ούτω καθεξής.
PREG_SET_ORDER Τα αποτελέσματα ομαδοποιούνται ανά αντιστοίχιση - κάθε στοιχείο του πίνακα περιέχει έναν πίνακα με τα groups που βρέθηκαν.

Ας δούμε τώρα τη χρήση αυτής της παραμέτρου με παραδείγματα:

Παράδειγμα

Ας εξαγάγουμε όλες τις χρονικές σημάνσεις από τη συμβολοσειρά και τα συστατικά τους:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res); print_r($res); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

[ 0 => ['12:01:02', '13:03:04', '14:05:06'], 1 => ['12', '13', '14'], 2 => ['01', '03', '05'], 3 => ['02', '04', '06'] ]

Παράδειγμα

Και τώρα ας χρησιμοποιήσουμε τη σημαία PREG_SET_ORDER για ομαδοποίηση ανά αντιστοίχιση:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res, PREG_SET_ORDER); print_r($res); ?>

Αποτέλεσμα εκτέλεσης του κώδικα:

[ 0 => '12:01:02', 1 => '12', 2 => '01', 3 => '02' ], [ 0 => '13:03:04', 1 => '13', 2 => '03', 3 => '04' ], [ 0 => '14:05:06', 1 => '14', 2 => '05', 3 => '06' ]

Πρακτικές Ασκήσεις

Δίνεται μια συμβολοσειρά με ημερομηνίες:

<?php $str = '2023-10-29 2024-11-30 2025-12-31'; ?>

Βρείτε όλες τις ημερομηνίες, διαχωρίζοντας το έτος, το μήνα και την ημέρα σε ξεχωριστά groups. Κάντε έτσι ώστε στον πρώτο υποπίνακα να μπει η πρώτη ημερομηνία με τα groups της, στον δεύτερο υποπίνακα - η δεύτερη με τα groups της και ούτω καθεξής.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη