2013-07-12 3 views
0

Я пытаюсь вернуть числа из строки в виде отдельных целых чисел. Строка имеет следующую разметку:Возвращает несколько целых чисел из строки в PHP

$string = "20 x 20 cm"; 

Число 20 может быть больше. например 70 х 93 см или 120 х 230 см, поэтому он не всегда равен друг другу.

Я читал о Preg_Match, но не мог понять это. Итак, теперь я прошу вас о помощи.

Заранее благодарен!

+2

опубликовать шаблон, который вы пытались ... –

+1

, если вы знаете, что он всегда будет умножение, вы могли бы использовать взорваться() на «х» и «cm» –

+1

Если промежутки между «x» постоянны, вы можете взорвать строку (пробел как разделитель) и использовать клавиши [0] и [2] –

ответ

1

Вы можете использовать

$string = '20 x 20 cm'; 
$arr = explode(' ', $string); 
$arr = array($arr[0], $arr[2]); 
print_r($arr); 
+0

Спасибо, это сработало! Я не думал использовать функцию взрыва. –

0

Я не регулярное выражение мастера, но мне нравится работать с именованными подмасками:

$string = "20 x 20 cm"; 
preg_match('/(?P<int1>\d+) x (?P<int2>\d+)/', $string, $matches); 
echo $matches['int1'].', '.$matches['int2']; 

Другим вариантом был бы strtok:

$int1 = strtok($string, ' x '); 
$int2 = strtok(' x '); 
echo $int1.', '.$int2; 

Или используйте sscanf:

list($int1, $int2) = sscanf($string, "%d x %d cm"); 
echo $int1.', '.$int2; 
2

Это должно работать для вас

$string = "20 x 20 cm"; 
$results = array(); 
preg_match_all('/\d+/', $string, $results); 
print_r($results[0]); 
+0

Спасибо, этот способ работал просто отлично! –

Смежные вопросы