我有$_POST
,其中包含以下数据
$_POST['survey_que1']
$_POST['survey_que2']
$_POST['survey_que3']
....
等等。
我必须从survey_que
得到$_POST
的出现次数。
请任何想法。
答案 0 :(得分:14)
重组您的数据。
<input type="text" name="survey_que[]" />
这将导致$_POST['survey_que']
成为传递值的数组,您可以轻松使用count()
来获取总计数。
答案 1 :(得分:2)
试试这个
$i=0;
foreach ($_POST as $name => $val)
{
if(strpos($name,'survey_que') !== false && $name != "survey_que")
$i++;
}
echo "No of times survey_que occured in $_POST[] is ".$i;
修改强>
如果未设置survey_que2
并且设置了survey_que3
,则代码中的@shri会导致您的代码失败。
所以尝试这个解决所有最坏情况的解决方法
$i=0;
foreach ($_POST as $name => $val)
{
if(strpos($name,'survey_que') !== false && $name != "survey_que")
{
$key=explode("survey_que",$name);
if(sizeof($key) == 2 && is_numeric($key[1]) && $key[0] == "")
{
$i++;
}
}
}
echo "No of times survey_que occured in $_POST[] is ".$i;
答案 2 :(得分:0)
序列化$ _POST并使用“substr_count”来计算发生次数
$how_many = substr_count(serialize($_POST), $search_string));
这是我找到的最简单的方法,但即使它不是$ _POST键值,也会计算此文本
答案 3 :(得分:0)
这对我来说完全是我想要的。
$i = 1;
while (isset($_POST['survey_que' . $i])) {
$i++;
}
echo $i-1;
感谢大家的快速支持。