$post_keys = array_keys($_POST);
$special_keys = array();
for($i=0;$i<count($post_keys);$i++){
if(strpos($post_keys[$i], "special") !== false){
$special_keys[] = $post_keys[$i];
}
}
我有很多关于命名约定的post vars,例如special0,special0_time,special0_duration,special1,special1_time等....我想要做的是找出有多少主要组,所以special0,special1等。我现在的代码搜索了所有具有“特殊”的键名,因此检索的内容比我想要的多。
答案 0 :(得分:2)
PHP已经为使用类似语法的数组的参数构建了一个数组(例如arg[]
)。见How do I create arrays in a HTML <form>
?
答案 1 :(得分:0)
为便于维护,请尝试以下结构:
$_POST = array(
'special' => array(
array('time'=>, 'duration'=>, ''=>),
array('time'=>, 'duration'=>, ''=>),
array('time'=>, 'duration'=>, ''=>),
),
);
然后你可以做一些像count($ _ POST ['special'])和$ _POST ['special'] [1] ['time']
答案 2 :(得分:0)
Gumbo是正确的,但是如果你仍然需要执行这样的任务,正则表达式可以提供帮助:
if(preg_match('/^(?<key>special[0-9]+)_/ix', $post_keys[$i], $match)){
$special_keys[] = $match['key'];
}
之后,您可以在array_unique()
上运行$special_keys
以获取一组论坛。