检索后数组值

Posted

技术标签:

【中文标题】检索后数组值【英文标题】:Retrieve post array values 【发布时间】:2014-03-12 02:37:26 【问题描述】:

我有一个使用 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>";

这是正确的方法吗?

【问题讨论】:

试试$qty = $_POST['qty']; 【参考方案1】:

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

$qty = $_POST['qty'];

您的代码将是:

$qty = $_POST['qty'];

foreach($qty as $value) 

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


【讨论】:

【参考方案2】:

php 会自动检测 $_POST$_GET 数组,因此您可以判断:

<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'];

$qty 将由 php-Array 组成。现在您可以通过以下方式访问它:

if (is_array($qty))

  for ($i=0;$i<size($qty);$i++)
  
    print ($qty[$i]);
  

?>

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

print_r($_POST['qty']);

甚至

print_r($_POST);

看看它是如何存储的。

【讨论】:

没错。值得注意的是:不要忘记 html 中输入名称中的 [ ]。我忘记了这个,浪费了我的生命。 您的答案非常适合多阵列。例如,我将发布姓名和年龄,因为我可以同时获得这两个值。 要添加到这一点,通过在括号之间设置实际值而不是将它们留空并通过此 foreach (array_expression as $key => $value) 解析返回的数组 foreach 循环,您可以保留 id。在处理多个页面时很有用【参考方案3】:

我的 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]);
   

?>

【讨论】:

【参考方案4】:

尝试将 filter_input() 与过滤器 FILTER_SANITIZE_SPECIAL_CHARS 和 FILTER_REQUIRE_ARRAY 一起使用,如图所示

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

然后你可以很好地遍历它

foreach($qty as $key=>$value)
    echo $value . "<br>";
   

【讨论】:

【参考方案5】:

PHP 很好地处理嵌套数组

尝试:

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

【讨论】:

【参考方案6】:

我更喜欢 foreach insted for,因为你不需要处理大小。

if( isset( $_POST['qty'] ) )

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

【讨论】:

以上是关于检索后数组值的主要内容,如果未能解决你的问题,请参考以下文章

如何从对象数组数组中检索值 angular 5

无法在 for 循环中检索数组值

使用 swift 将数组保存和检索到用户默认值

将mysql数据库值检索到数组中

从 PHP 多维数组中检索值

以键和值数组的形式快速从 JSON 中检索特定数组?