我是否可以使用某种通配符来创建以特定字符串开头的POST变量?
基本上,我试图捕获包含bSortable_(通配符)作为名称的任何POST。
bSortable_1 bSortable_2 bSortable_3
我正在为库jquery数据表执行此操作。
答案 0 :(得分:5)
将变量发布到数组中,而不是在过滤时迭代它。
foreach($_POST as $key => $value) {
$pos = strpos($key , "bSortable_");
if ($pos === 0){
// do something with $value
}
}
答案 1 :(得分:3)
使用 PHP可以接受多维POST参数。name="bSortable[name_here]"
或其中的一些排列。
如果那是不可能的,那么你将不得不循环使用可用的POSTed变量,并检查键名,如下所示:
<?php foreach($_POST as $key => $val) if(strpos($key, 'bSortable_') === 0) .... ?>
答案 2 :(得分:0)
阅读,这是我的PHP 5.3解决方案
$sortables = array_filter($_POST, function($e){
return preg_match('/^bSortable/', $e);
});
答案 3 :(得分:0)
你也可以这样做:
foreach($_POST as $key => $value){
if(substr($key,0,10) == 'bSortable_'){
//Do something here with the $value.
}
}
现在你可以确保它确实获得了POST键的第一部分,而不是键中间的某个部分。