Вы можете использовать следующее регулярное выражение для их разделения:
preg_match('/(<|>|=|<=|>=)([0-9]+)/', $amount, $matches);
$sign=$matches[1];
$number=$matches[2];
ОБНОВЛЕНИЕ: Я проверил это и обнаружил, что он не обрабатывает ошибочные знаки должным образом.Я придумал следующий код, который, кажется, работает нормально:
$amount=">=20";
preg_match('/([^0-9]*)([0-9]+)/', $amount, $matches);
$sign=preg_match('/^(>|<|=|<=|>=)$/', $matches[1]) ? $matches[1] : '=';
$number=$matches[2];
Если указана строка >=20
, то знак >=
и число '20', если заданная строка '%$ 20 ', тогда знак - =
, а номер - 20
.