preg_match_all代わりに使用
preg_match_all("/(\d+)*\s?([A-Za-z]+)*/", "ABCd Abhe 123" $match);
すべての試合で:
$match[i][0]一致したセグメントを含む
$match[i][1]数字を含む
$match[i][2]文字を含む
(正規表現テストについては、こちらを参照してください)
次に、それらを配列に入れます
for($i = 0; $i < count($match); $i++)
{
if($match[i][1] != "")
$numbers[] = $match[1];
if($match[i][2] != "")
$letters[] = $match[2];
}
編集1
正規表現を更新しました。空白の有無にかかわらず、数字または文字を検索するようになりました。
EDIT2
正規表現は正しいですが、配列の処理は正しくありません。を使用するpreg_match_allと、次$matchのような配列を含む配列になります。
Array
(
[0] => Array
(
[0] => Abc
[1] => aaa
[2] => 25
)
[1] => Array
(
[0] =>
[1] =>
[2] => 25
)
[2] => Array
(
[0] => Abc
[1] => aaa
[2] =>
)
)