PHPda preg_match_all xatti-harakati o'zgartirish
preg_match_all funksiyasining to'rtinchi parametri yordamida
guruhlash usulini o'zgartirish mumkin.
Keling, ushbu parametr qanday qiymatlarni qabul qilishini ko'rib chiqaylik:
| Parametr | Ta'rif |
|---|---|
PREG_PATTERN_ORDER |
Standart rejim. Natijalar guruhlar bo'yicha guruhlanadi - massivning nolinchi elementi nolinchi guruhlarni o'z ichiga oladi, birinchi elementi birinchi guruhlarni o'z ichiga oladi va hokazo. |
PREG_SET_ORDER |
Natijalar mosliklar bo'yicha guruhlanadi - massivning har bir elementi topilgan guruhlarni o'z ichiga olgan massivni o'z ichiga oladi. |
Keling, endi ushbu parametrning qo'llanilishini misollar orqali ko'rib chiqaylik:
Misol
Satrdan barcha vaqt belgilarini va ularning tarkibiy qismlarini ajratib olamiz:
<?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);
?>
Kodni bajarish natijasi:
[
0 => ['12:01:02', '13:03:04', '14:05:06'],
1 => ['12', '13', '14'],
2 => ['01', '03', '05'],
3 => ['02', '04', '06']
]
Misol
Endi mosliklar bo'yicha guruhlash uchun
PREG_SET_ORDER bayrog'idan foydalanamiz:
<?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);
?>
Kodni bajarish natijasi:
[
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'
]
Amaliy vazifalar
Sanalar bilan satr berilgan:
<?php
$str = '2023-10-29 2024-11-30 2025-12-31';
?>
Barcha sanalarni toping, yil, oy va kunni alohida guruhlarga ajrating. Birinchi kichik massivga birinchi sana uning guruhlari bilan, ikkinchi kichik massivga ikkinchi sana uning guruhlari bilan va hokazo tushishi uchun qiling.