在我的$ _POST数组中,我有以下值:
[txtPe_20_Table1] => 2.3
[txtPa_12_Table1] => 0.00
[txtPa_25_Table1] => 0.00
[txtPa_35_Table1] => 0.00
[txtPa_50_Table1] => 0.00
[txtPa_100_Table1] => 0.00
[txtPa_200_Table1] => 0.00
[txtPr_12_Table1] => 0.00
现在,我想要做的是仅提取以' txtPa _'开头的键中的数字值。
这样做的最佳方法是什么?我应该使用正则表达式还是只是循环遍历数组,搜索以' txtPa _'开头的子字符串?
答案 0 :(得分:3)
虽然最好构建表单,以便将键组合在一起。如果你不能,那么你可以这样做:
foreach($_POST as $key=>$var){
if(substr($key, 0, 6)=='txtPa_'){
//so something with $var
}
}
来自@ Rizier123
$filtered = array_filter(function($k){ return strpos($k, "txtPa_") === 0; },ARRAY_FILTER_USE_KEY);
表单更改选项
...
<input type="text" name="txtPa[12_Table1]">
<input type="text" name="txtPa[25_Table1]">
等
然后你有数组$_POST[txtPa]