如何在php中通过$_GET传递数组?
如何通过 $_GET 将数组类型的一个或多个变量传递到另一个页面?
我总是在表单中传递变量值?a=1&b=2&c=3
传球怎么样?a=[1,2,3]
我是否需要编写 for 循环并追加所有值?
谢谢
如何通过 $_GET 将数组类型的一个或多个变量传递到另一个页面?
我总是在表单中传递变量值?a=1&b=2&c=3
传球怎么样?a=[1,2,3]
我是否需要编写 for 循环并追加所有值?
谢谢
您可以使用以下语法通过_GET传递数组:[]
?a[]=1&a[]=2&a[]=3
PHP 理解这种语法,所以等于 .$_GET['a']
array(1, 2, 3)
您还可以指定键:
?a[42]=1&a[foo]=2&a[bar]=3
多维阵列也有效:
?a[42][b][c]=1&a[foo]=2
http_build_query()
会自动执行此操作:
http_build_query(array('a' => array(1, 2, 3))) // "a[]=1&a[]=2&a[]=3"
http_build_query(array(
'a' => array(
'foo' => 'bar',
'bar' => array(1, 2, 3),
)
)); // "a[foo]=bar&a[bar][]=1&a[bar][]=2&a[bar][]=3"
另一种方法是传递 json 编码数组:
?a=[1,2,3]
你可以用:a
json_decode
$a = json_decode($_GET['a']); // array(1, 2, 3)
并用json_encode再次编码:
json_encode(array(1, 2, 3)); // "[1,2,3]"
不要将序列化()用于
此目的。序列化允许序列化对象,并且有办法使它们执行代码。因此,切勿反序列化不受信任的字符串。
可以将关联数组传递给 http_build_query(),
并将生成的字符串作为查询字符串追加到 URL。该数组将由PHP自动解析,因此在接收页面上将包含一个数组。$_GET
例
$query_str = http_build_query(array(
'a' => array(1, 2, 3)
));