PHP数组从URL参数中获取的行为不如预期
P粉785905797
P粉785905797 2024-04-06 22:09:02
[PHP讨论组]

我有一个包含类别 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粉785905797
P粉785905797

全部回复(48)
PHP中文网用户-9004663

您好,您可以使用PHP的内置函数parse_url和parse_str来解析URL并获取参数。这两个函数都可以将URL字符串解析为关联数组,然后您可以使用该数组来访问URL参数。例如,如果您有一个包含类别ID的URL参数,如下所示:example.com?cat[]=3,9,13,则可以使用以下代码将其视为一个数组:\n\n```php\n$url = \【http://www.jiadingfang.com/b/hpsfla216870.html】【http://www.jiadingfang.com/b/nihczg402369.html】【http://www.jiadingfang.com/b/zyosre053267.html】

PHP中文网用户-9004663

你好,你可以使用PHP的内置函数`parse_url()`和`parse_str()`来从URL中获取参数并将其转换为数组。以下是一个示例代码:\n\n```php\n\u003c?php\n$url = \【http://www.jiadingfang.com/b/udoqaf712693.html】【http://www.jiadingfang.com/b/rnblhx742635.html】【http://www.jiadingfang.com/b/ptzubs950617.html】

PHP中文网用户-9004663

您好,您可以使用PHP的内置函数`parse_url()`和`parse_str()`来获取URL参数并将其转换为数组。以下是一个示例代码:\n\n```php\n$url = 'http://example.com?cat[]=3\u0026cat[]=9\u0026cat[]=13';\n$query_string = parse_url($url, PHP_URL_QUERY); // 获取查询字符串\nparse_str($query_string, $params); // 将查询字符串转换为关联数组\nprint_r($params['cat']); // 输出数组内容\n```\n\n这将输出:\n\n```\nArray\n(\n [0] =\u003e 3\n [1] =\u003e 9\n [2] =\u003e 13\n)\n```【http://www.jiadingfang.com/b/nfbjtd048673.html】【http://www.jiadingfang.com/b/ioynlx754602.html】【http://www.jiadingfang.com/b/cujlen480953.html】

PHP中文网用户-9004663

您可以使用PHP的`parse_str()`函数将URL参数转换为数组。例如,如果您有一个包含类别ID的URL参数,如下所示:example.com?cat[]=3,9,13,您可以使用以下代码将其转换为数组:\n\n```php\n$cat = explode(',', $_GET['cat']);\nprint_r($cat);\n```\n\n这将输出:\n\n```\nArray\n(\n [0] =\u003e 3\n [1] =\u003e 9\n [2] =\u003e 13\n)\n```【http://www.jiadingfang.com/b/zodcxn937548.html】【http://www.jiadingfang.com/b/djhlvs173568.html】【http://www.jiadingfang.com/b/ptizuk314680.html】

PHP中文网用户-9004663

您好,如果您的PHP数组从URL参数中获取的行为不如预期,可能是因为您没有正确地解析URL参数。在PHP中,您可以使用`parse_url()`函数和`parse_str()`函数来解析URL并将其转换为数组。例如,如果您有一个包含类别ID的URL参数,如下所示:example.com?cat[]=3,9,13,则可以使用以下代码将其转换为数组:\n\n```php\n$url = \【http://www.jiadingfang.com/b/uflprb706241.html】【http://www.jiadingfang.com/b/dzytjv357926.html】【http://www.jiadingfang.com/b/waqxnt729653.html】

PHP中文网用户-9004663

您好,如果您的PHP数组从URL参数中获取的行为不如预期,可能是因为您的URL参数格式不正确。例如,如果您的URL参数是逗号分隔的值(CSV)而不是数组,则可以使用以下代码将其转换为PHP数组:\n\n```php\n$catIDs = explode(',', $_GET['cat']);\n```\n\n如果您的URL参数已经是数组格式,则可以直接使用以下代码将其赋值给PHP数组:\n\n```php\n$catIDs = $_GET['cat'];\n```【http://www.jiadingfang.com/b/izevgd503198.html】【http://www.jiadingfang.com/b/pzofxw425107.html】【http://www.jiadingfang.com/b/nqrdbu821709.html】

PHP中文网用户-9004663

您好,您可以使用PHP的内置函数`parse_url()`和`parse_str()`来解析URL并获取参数。以下是一个示例代码:\n\n```php\n$url = \【http://www.jiadingfang.com/b/oskgwb193560.html】【http://www.jiadingfang.com/b/vnfkzb640582.html】【http://www.jiadingfang.com/b/vhydae051486.html】

PHP中文网用户-9004663

你好,你可以使用PHP的内置函数`parse_url()`和`parse_str()`来解析URL并获取参数。`parse_url()`函数将URL解析为一个关联数组,其中包含许多有用的信息,例如协议、主机名、路径等。`parse_str()`函数将查询字符串解析为一个关联数组,其中包含所有查询参数及其值。 \n\n如果你想从URL参数中获取一个数组,你可以使用`explode()`函数将逗号分隔的值转换为数组。例如,如果你有一个名为`cat[]`的URL参数,它包含逗号分隔的值,你可以使用以下代码将其转换为数组:\n\n```php\n$catIDs = explode(',', $_GET['cat']);\n```【http://www.jiadingfang.com/b/gqzdsk549381.html】【http://www.jiadingfang.com/b/swujdv270943.html】【http://www.jiadingfang.com/b/rpubmw238516.html】

PHP中文网用户-9004663

您好,PHP数组从URL参数中获取的行为不如预期的问题可能是由于以下原因之一导致的:\n\n1. 您的URL参数格式不正确。请确保您的URL参数格式为`cat[]=3,9,13`,其中`cat[]`表示一个数组。如果您的URL参数格式不正确,那么您将无法将其视为一个数组。\n\n2. 您使用`$_GET['cat']`而不是`$_GET['cat[]']`来获取URL参数。请注意,`$_GET['cat']`只能获取一个值,而`$_GET['cat[]']`可以获取多个值。\n\n3. 您在将字符串转换为数组时使用了错误的函数。请使用`explode()`函数将字符串分割为数组,如下所示:\n\n```php\n$catIDs = explode(',', $_GET['cat']);\n```【http://www.jiadingfang.com/b/hilurp893405.html】【http://www.jiadingfang.com/b/ozjwam602387.html】【http://www.jiadingfang.com/b/mslrof867093.html】

PHP中文网用户-9004663

您好,如果您的PHP数组从URL参数中获取的行为不如预期,可能是因为您没有正确地解析URL参数。在PHP中,可以使用`$_GET`或`$_REQUEST`全局变量来获取URL参数。如果您想要将URL参数解析为数组,可以使用`parse_str()`函数。\n\n例如,如果您有一个包含类别ID的URL参数,如下所示:example.com?cat[]=3,9,13,您可以使用以下代码将其解析为数组:\n\n```php\n\u003c?php\n$catIds = $_GET['cat'];\nparse_str($catIds, $catArray);\nprint_r($catArray);\n?\u003e\n```\n\n这将输出:\n\n```\nArray\n(\n [0] =\u003e 3\n [1] =\u003e 9\n [2] =\u003e 13\n)\n```【http://www.jiadingfang.com/b/olapbz641279.html】【http://www.jiadingfang.com/b/pzysbf072418.html】【http://www.jiadingfang.com/b/xgymaf985034.html】

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号