في PHP، يمكنك استخراج الأرقام من سلسلة باستخدام التعبيرات العادية والدالة preg_match_all(). فيما يلي مثال لكيفية استخراج كافة الأرقام من سلسلة:
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
سيؤدي هذا إلى إخراج:
Array ( [0] => 15 [1] => 3 )
توضيح:
/[0-9]+/ عن رقم واحد أو أكثر متتالية.preg_match_all() بالبحث في السلسلة عن كافة تكرارات التعبير العادي وتخزن المطابقات في المصفوفة $matches.print_r() لعرض محتويات المصفوفة.يمكنك أيضًا استخدام الدالة preg_replace() لإزالة الأحرف غير الرقمية من سلسلة والاحتفاظ بالأرقام فقط:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
سيؤدي هذا إلى إخراج:
15 3
توضيح:
/D/ مع أي حرف غير رقمي.preg_replace() جميع الأحرف غير الرقمية بسلسلة فارغة، مما يؤدي إلى إزالتها بشكل فعال من السلسلة.هناك طريقة أخرى ولكنها ليست موثوقة مثل الخيارين المذكورين أعلاه. يمكننا استخدام وظيفة PHP المضمنة filter_var() لاستخراج int من السلسلة.
$string = "There are 15 Oranges and 3 Bananas.";
// extract numbers from string
$my_int = (int)filter_var($string ,FILTER_SANITIZE_NUMBER_INT);
echo $my_int;
سيؤدي هذا إلى إخراج:
153