Как возвратиться только названный группами с preg_match или preg_match_all?

Пример:

$string = "This is some text written on 2010-07-18.";
preg_match('|(?\d\d\d\d-\d\d-\d\d)|i', $string, $arr_result);
print_r($arr_result);

Возвраты:

Array
(
    [0] => 2010-07-18
    [date] => 2010-07-18
    [1] => 2010-07-18
)

Но я хочу, чтобы это было:

Array
(
    [date] => 2010-07-18
)

В объекте PDO PHP существует опция, которая фильтрует результаты базы данных путем удаления этих, дубликат пронумеровал значения: PDO::FETCH_ASSOC. Но я еще не видел подобный модификатор для функций PCRE в PHP.

15
задан HamZa 19 March 2014 в 20:02
поделиться

2 ответа

Я не думаю, что вы можете заставить preg_* сделать это, но вы можете сделать это с помощью простого цикла. Но я не понимаю, почему эти элементы представляют проблему.

4
ответ дан 1 December 2019 в 02:09
поделиться

Попробуйте это:

$string = "This is some text written on 2010-07-18."; 
preg_match('|(?<date>\d\d\d\d-\d\d-\d\d)|i',$string,$arr_result);
echo $arr_result['date'];
-2
ответ дан 1 December 2019 в 02:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: