计算$ _POST中的值

时间:2011-06-21 19:44:37

标签: php

我有一个最奇怪的问题。我需要计算PHP中通过$ _POST提交的值的数量 我尝试了count($_POST['posted'])并继续获得1而不是30多个预期值。

我检查了它是否是一个数组,是的!审判; print_r($_POST);并获取值

  

数组(['posted'] => asdasd asdasd ...   asdasd)

我错过了什么?


更新:

$count = count($_POST);
echo $count.' --- ';
print_r($_POST);

输出:

  

1 ---数组([posted] => asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd asdasd)

...和

var_dump($_POST);

产生

  

array(1){[“posted”] =>串(152)   “asdasd asdasd asdasd asdasd asdasd   asdasd asdasd asdasd asdasd asdasd   asdasd asdasd asdasd asdasd asdasd   asdasd asdasd asdasd asdasd“}

最后......

var_export($_POST);

提供了:

  

array('posted'=>'asdasd asdasd   asdasd asdasd asdasd asdasd asdasd   asdasd asdasd asdasd asdasd asdasd   asdasd asdasd asdasd asdasd asdasd   asdasd asdasd',)

7 个答案:

答案 0 :(得分:6)

$_POST始终是一个数组,但您的$_POST['posted']本身不是数组。

答案 1 :(得分:4)

要计算$_POST数组中的项目数,请使用count($_POST)(不是count($_POST['posted']

答案 2 :(得分:1)

<?php

$my_count = count($_POST);

?>

答案 3 :(得分:1)

如果表单将参数作为嵌套数组发布:

<input name="posted[]" />

然后你的方法应该是正确的。但是,根据您的示例,它是一个空格分隔的字符串,因此您需要:

$values = explode(' ', $_POST['posted']);
$count = count($values);

答案 4 :(得分:0)

您的数组必须先处理过,但请var_dum($_RESQUEST)它会显示所有发布的,网址和Cookie变量,如果在请求中它也就像现在它意味着您的表单输入或任何字段名称都有同名lol或你做过治疗

答案 5 :(得分:0)

如果您的表单为每个参数(已发布)发布多个值,则必须将此参数的名称命名为name in name属性:

statespec

发布此表单后,您将获得发布变量的计数,如下所示:

<input name="posted[]" value="abc" />
<input name="posted[]" value="opq" />
<input name="posted[]" value="xyz" />

答案 6 :(得分:-1)

$post = $_POST["posted"];        // get posted value
$total = (explode('', $post));   // separate values which have space 
$list = count($total);           // count separated values
echo $list;                      // Print count number