در 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]+/
یک یا چند رقم متوالی را جستجو می کند.$matches
ذخیره می کند.همچنین میتوانید از تابع «preg_replace()» برای حذف کاراکترهای غیر عددی از یک رشته استفاده کنید و فقط اعداد را نگه دارید:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
این خروجی خواهد داشت:
15 3
توضیحات:
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