从字符串中分离字母和数字

$str = 'ABC300';

How I can get values like

$alphabets = "ABC";
$numbers = 333;

I have a idea , first remove numbers from the string and save in a variable. then remove alphabets from the $str variable and save. try the code

 $str = 'ABC300';
$alf= trim(str_replace(range(0,9),'',$str));//removes number from the string 
$number = preg_replace('/[A-Za-z]+/', '', $str);// removes alphabets from the string 
echo $alf,$number;// your expected output 

A way to do that is to find all digits and use the array to replace original string with the digits inside.

For example

function extractDigits($string){
    preg_match_all('/([\d]+)/', $string, $match);

    return $match[0];
}

$str = 'abcd1234ab12';
$digitsArray = extractDigits($str);
$allAlphas = str_replace($digitsArray,'',$str);
$allDigits = '';
foreach($digitsArray as $digit){
   $allDigits .= $digit;
}

Try something like this (it's not that fast)...

$string = "ABCDE3883475";
$numbers = "";
$alphabets = "";
$strlen = strlen($string);
for($i = 0; $i <= $strlen; $i++) {
    $char = substr($string, $i, 1);
    if(is_numeric($char)) {
        $numbers .= $char;
    } else {
        $alphabets .= $char;
    }
}

Then all numbers should be in $numbers and all alphabetical characters should be in $alphabets ;)

https://3v4l.org/Xh4FR