У меня есть простая строка, которая должна содержать имя и дату рождения, как показано ниже:PHP разделить строку, используя формат даты
$searchParams = '12/12/1978 Bob Smithers';
или альтернативно
$searchParams = 'Bob Smithers 12/12/1978';
Что мне нужно сделать, это раскол дата вдали от имени, если дата существует в строке. Я могу получить дату с помощью кода ниже, хотя это порождает несколько причуд, если они упорядочены, как в первом примере выше.
$splitData=preg_split('/([0-9]{1,2})-([0-9]{1,2})-([0-9]{2,4})$/', $searchParams);
Второй пример возвращает массив:
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
<i>(size=2)</i>
0 <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'bob smithers '</font>
<i>(length=13)</i>
1 <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>''</font>
<i>(length=0)</i>
Что я требую, чтобы разбить строку на две части - одна, содержащая дату и один, содержащий имя
preg_split будет использовать regexp как разделитель, по которому будет разделяться строка, т. е. она не будет возвращена. Попробуйте preg_match_all, чтобы получить дату, а затем удалите ее из исходной строки, если она найдена –