首页  >  问答  >  正文

PHP数组从URL参数中获取的行为不如预期

我有一个包含类别 ID 的 URL 参数,我想将其视为一个数组,如下所示:

http://example.com?cat[]=3,9,13

在 PHP 中,我使用它从 URL 参数获取数组:

$catIDs = $_GET['cat'];

当我执行 echo gettype($catIDs); 时,它表明它实际上被视为数组,但是当我执行 print_r($catIDs); 时,我得到以下结果:

Array ([0] => 3,9,13)

但我期待这个:

Array ([0] => 3, [1] => 9, [2] => 13)

我在这里缺少什么?谢谢!

P粉785905797P粉785905797207 天前1568

全部回复(1)我来回复

  • P粉267791326

    P粉2677913262024-04-07 00:39:50

    错误不在服务器/PHP 端,而是在客户端/请求端。给定的 URL 为您提供一个包含一个元素的数组,即一个以逗号分隔的字符串:

    cat[]=3,9,13

    产量:

    ["3,9,13"]

    要通过 URL 参数指定数组,您需要为每个项目重复参数名称:

    cat[]=3&cat[]=9&cat[]=13

    产量:

    ["3","9","13"]

    或者,您可以指定一个以逗号分隔的参数:

    cat=3,9,13

    然后将其拆分:

    $cat = explode(',', $_GET['cat']);

    回复
    2
  • 取消回复