检索后期数组值

时间:2014-02-13 09:45:35

标签: php jquery arrays

我有一个使用jQuery .serialize()发送所有数据的表单在表单中有四个arrays qty[], etc它将表单数据发送到sendMail页面,我希望将发布的数据从阵列。

我试过了:

$qty = $_POST['qty[]'];
foreach($qty as $value)
{
  $qtyOut = $value . "<br>";
}

尝试了这个:

for($q=0;$q<=$qty;$q++)
{
 $qtyOut = $q . "<br>";
}

这是正确的方法吗?

6 个答案:

答案 0 :(得分:11)

您的[]变量中有$_POST - 这些不是必需的。你应该使用:

$qty = $_POST['qty'];

您的代码将是:

$qty = $_POST['qty'];

foreach($qty as $value) {

   $qtyOut = $value . "<br>";

}

答案 1 :(得分:7)

php会自动检测 $ _ POST $ _ GET - 数组,以便您可以juse:

<form method="post">
    <input value="user1"  name="qty[]" type="checkbox">
    <input value="user2"  name="qty[]" type="checkbox">
    <input type="submit">
</form>

<?php
$qty = $_POST['qty'];
一个php-Array将

$ qty 。现在您可以通过以下方式访问它:

if (is_array($qty))
{
  for ($i=0;$i<size($qty);$i++)
  {
    print ($qty[$i]);
  }
}
?>

如果您不确定所接收数据结构的格式,可以使用:

print_r($_POST['qty']);

甚至

print_r($_POST);

查看它是如何存储的。

答案 2 :(得分:1)

我的PHP 4.4.4版本抛出错误: 严重错误:调用未定义函数:size()

我将 size 更改为 count ,然后例程正常运行。

<?php
$qty = $_POST['qty'];

if (is_array($qty)) {
   for ($i=0;$i<count($qty);$i++)
   {
       print ($qty[$i]);
   }
}
?>

答案 3 :(得分:1)

尝试使用带有过滤器FILTER_SANITIZE_SPECIAL_CHARS和FILTER_REQUIRE_ARRAY的filter_input(),如图所示

$qty=filter_input(INPUT_POST, 'qty',FILTER_SANITIZE_SPECIAL_CHARS,FILTER_REQUIRE_ARRAY);

然后您可以像

一样很好地进行迭代
foreach($qty as $key=>$value){
    echo $value . "<br>";
   }

答案 4 :(得分:0)

PHP很好地处理嵌套数组

尝试:

foreach($_POST['qty'] as $qty){
   echo $qty
}

答案 5 :(得分:0)

我更喜欢foreach的foreach,因为您不需要增加大小。

if( isset( $_POST['qty'] ) )
{
    $qty = $_POST ['qty'] ;
    if( is_array( $qty ) )
    {
        foreach ( $qty as $key => $value ) 
        {
            print( $value );
        }
    }
}