【问题标题】:How to pass an array?如何传递一个数组?
【发布时间】:2010-12-14 17:13:31
【问题描述】:

如何通过 GET 方法使用 PHP 传递数组?

谢谢

【问题讨论】:

    标签: php arrays post get methods


    【解决方案1】:

    在您的查询字符串(或 POST 数据,这并不重要)中,您应该得到以下结果:

    http://example.com/myscript.php?foo[]=1&foo[]=2&foo[]=3
    

    PHP 会将其解析为$_GET["foo"],它将是一个包含成员 1、2 和 3 的数组。如何从表单中处理它取决于您。例如,在过去,我曾将不同的复选框命名为“check[]”。

    【讨论】:

      【解决方案2】:

      你的意思是通过表格吗?

      <form method="GET" action="action.php">
          <input type="text" name="name[]">
          <input type="text" name="name[]">
          <input type="submit" value="Submit">
      </form>
      

      请注意,name 属性中有 []

      然后在你的 php 中:

      <?php
          $names = $_GET['name'];
          foreach($names as $name) {
              echo $name . "<br>";
          }
      ?>
      

      【讨论】:

      • 是的,我想通过表单(带有复选框)来完成,但这个解决方案不起作用:/
      【解决方案3】:

      顺便说一句,与其通过 GET 传递数组,不如将数组存储在 $_SESSION 中并稍后再次取出它可能更有意义。

      【讨论】:

        【解决方案4】:

        你可以这样调用脚本:

        http://www.example.com/script.php?foo[bar]=xyzzy&foo[baz]=moo
        

        这将在 $_GET 中产生以下数组:

        array(1) { ["foo"]=> array(2) { ["bar"]=> string(5) "xyzzy" ["baz"]=> string(3) "moo" } }
        

        您也可以省略键名以获得常规数组索引。

        【讨论】:

        • “注意:未定义的索引:类别”我明白了
        • 您使用的是什么查询字符串,您是如何访问它的?
        • 这是表格,我尝试用 print_r 打印出来
        • 你正在使用 print_r($_GET['category']) 打印?如果您尚未选中任何框,则这是预期行为。如果您已选中某些框,您可能希望将这个以及更多代码添加到您的原始问题中。
        猜你喜欢
        • 2017-07-09
        • 2021-03-06
        • 1970-01-01
        • 2018-07-12
        • 1970-01-01
        • 2019-11-06
        • 1970-01-01
        相关资源
        最近更新 更多