PHP'деги preg_match_all функциясынын иш-аракетин өзгөртүү
preg_match_all функциясынын төртүнчү параметри аркылуу
кармандарды топтоо ыкмасын өзгөртсө болот.
Бул параметр кандай маанилерди ала аларын көрөлү:
| Параметр | Сүрөттөмө |
|---|---|
PREG_PATTERN_ORDER |
Демейки режим. Натыйжалар кармандар боюнча топтолот - массивдин нөлдүнчү элементи нөлдүнчү кармандарды камтыйт, биринчи элементи биринчи кармандарды камтыйт жана ушу сыяктуу. |
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);
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';
?>
Бардык даталарды табыңыз, жыл, ай жана күндү өзүнчө кармандарга бөлүп. Биринчи кичи массивге биринчи дата анын кармандары менен, экинчи кичи массивге экинчи дата анын кармандары менен жана ушу сыяктуу түшүшү үчүн жасаңыз.