Как проверить, имеет ли номер 4 цифровых

допустим, у меня есть следующее значение, и я хочу иметь годы

July 1967 USA
14 March 1979 France
23 June 1976 France
from the 21 October 2016

скажем, это значение $year2 я использую is_numeric но это не дает правильный результат, как всегда есть, чтобы использовать preg_replace

            $year2 = explode(" ",$year1);
if (!is_numeric($year2[2])) {

if ( ! isset($year2[1])) {
$year2[1] = null;
}
$year =  $year2[1];
} else {
if ( ! isset($year2[2])) {
$year2[2] = null;
}
$year =  $year2[2];
}
}

echo $year;

выходными данными иногда является день ex: 21 вместо 2016 года
я попробовал это без успеха $year = preg_match('/\d{4}/g',$year2);

0

Решение

Если вы хотите получить год от каждой строки (как я понял ваш вопрос), вы можете использовать preg_match()

<?php

$values = [
'July 1967 USA',
'14 March 1979 France',
'23 June 1976 France',
'from the 21 October 2016',
];
foreach ($values as $value) {
$pattern = '/(^|\s)(\d{4})(\s|$)/m';
preg_match($pattern, $value, $match);
echo $match[2] . "\n";
}

Выход:

1967
1979
1976
2016
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]