我提交了以下帖子字段,我正在尝试获取数量的表单字段中每个数字的值。有人可以用正则表达式帮我吗?我试图获取变量中的每个数字。
FORMAT
Quantity_{Category}_{Product}_{Item}
提交的后场
[submitted] => 1
[Quantity_12038_16061_24960] => 1
[Quantity_12037_16060_24959] => 2
[btnBuyNow] => Next Step
PHP代码
foreach ($_POST as $key => $value) {
if (preg_match('/^Quantity_(\d+)$/', $key, $matches)) {
echo 'Key:' . $key . '<br>';
echo 'Matches:' . $matches . '<br>';
echo '<hr>';
}
}
答案 0 :(得分:2)
为此目的使用preg_match()
docs,这是代码的样子示例:
$subject="Quantity_12038_16061_24960";
$pattern='/Quantity_(\d+)_(\d+)_(\d+)/';
preg_match($pattern, $subject, $matches);
echo $matches[0]; //12038 {Category}
echo $matches[1]; //16061 {Product}
echo $matches[2]; //24960 {Item}
您可以看到此正则表达式的执行情况here。
答案 1 :(得分:1)
如上所述,不需要正则表达式:
foreach($_POST as $key => $val) {
if(strpos($key, 'Quantity') === 0) {
$results = explode('_', $key);
print_r($results);
}
}
除了unset($results[0]);
。