【发布时间】:2012-09-19 10:50:17
【问题描述】:
我有一个表单,它可以从选择框和文本输入字段的表中发送不超过$_POST['ore'] 的整数。有问题的数组是:
print_r($_POST)
//returns
Array
(
[ore] => Array
(
[0] => 1
[1] => 2
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
)
....
这就是它变得越来越大,它是一个小型应用程序。 10个选择框,10个输入框。表单本身和其他功能都很好用。
但是,在提交时,数据被发送到另一个页面,该页面处理收集的信息并基于该数组的count 生成一个带有while 循环的新表。但是,我只想计算大于 0 的值,因为零在技术上是空的。
我尝试了多个函数、示例、片段,也尝试了愚蠢的运气,但没有积极的结果。我已经得到了一些部分工作,但大多数时候他们遗漏了最后一行。
我目前有size = count($_POST['ore']); - 但是这会创建一个包含 10 行的表(应该如此),并用 while 代码的最后一个循环填充表中的其余行。实用,但烦人,不是我想做的。
我已经尝试使用 array_filter
function nonzero($var){
return ($var > 0); }
$size = array_filter($_POST['ore'], "nonzero");
运气不好。
我在多个地方都尝试过if(isset($_POST['ore'])),但由于数组中有一个 0 值,因此在技术上是设置的。
那么,我如何计算或过滤然后计算 $_POST['ore'] 数组值以去除 0 并仅计算或返回大于 0 的键?
我的键盘,我提前谢谢你。
编辑 - 找到答案谢谢大家一大早的反馈
function nonzero($var){
return ($var > 0); }
$size = count(array_filter($_POST['ore'], "nonzero"));
^^ 做到了
【问题讨论】:
-
请用有意义的标题编辑您的问题。
标签: php