У меня есть несколько строк в массиве:
$array = array('BE001 FIRST', 'BE01 SECOND', 'SV001 THIRD');
foreach ($array as $item) {
// preg_match('', $item);
}
Я хотел бы получить элемент массива, если он содержит «BE» + 3 любых цифр сразу после. В этом случае 1-й элемент массива.
Я не знаком с regex
, но я видел примеры, как сопоставить заданное значение, но не заданное значение с определенным количеством случайных цифр в конце. Пожалуйста, помогите мне!
использование preg_grep
:
$array = array('BE001 FIRST', 'BE01 SECOND', 'SV001 THIRD');
$res = preg_grep('/^BE\d{3}\b/', $array);
print_r($res);
Выход:
Array
(
[0] => BE001 FIRST
)
Вот моя версия:
<?php
$input = ['BE001 FIRST', 'BE01 SECOND', 'SV001 THIRD', 'BE1234 FOURTH'];
$output = [];
array_walk($input, function(&$entry) use (&$output) {
if (preg_match('/BE\d{3}([^\d]|$)/', $entry)) {
$output[] = $entry;
}
});
print_r($output);
Вывод, очевидно, таков:
Array
(
[0] => BE001 FIRST
)