$ _POST中的字符串计数

时间:2014-02-19 13:33:10

标签: php arrays post

我有$_POST,其中包含以下数据

$_POST['survey_que1']
$_POST['survey_que2']
$_POST['survey_que3']
.... 

等等。

我必须从survey_que得到$_POST的出现次数。

请任何想法。

4 个答案:

答案 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;

感谢大家的快速支持。