有没有办法表示/传递像
这样的多维数组array( array('foo' => 'bar') , array('language' => 'php'), ...);
进入GET字符串?
对于简单数组,例如
array(1,2,3,4)
我可以像这样代表
?ids=1,2,3,4
但我不知道如何表示多维数组
答案 0 :(得分:3)
您使用与提交表单发布数据时相同的方括号表示法,例如
?array[][foo]=bar&array[][language]=php
$array = $_GET['array'];
答案 1 :(得分:2)
有几种方法可以做到。
一种方法是serialize(),然后在unserialize()页面上读取它。
另一种方法是json_encode()它,然后在json_decode()页面上读取它。
或者,按照你喜欢的CSV风格,你可以用不同的分隔符分隔数组的下一层,例如
array(
0 => array(1, 2, 3),
1 => array(4, 5, 6),
)
变为
?array=1|2|3,4|5|6
最后,PHP还将解析查询字符串中的数组,如:
?array[0][0]=1&array[0][1]=2&array[0][1]=3&array[1][0]=4&array[1][1]=5&array[1][1]=6
答案 2 :(得分:0)
我不知道有任何标准方法可以做到这一点。您可以使用空格字符作为行分隔符来自行滚动:
array( array(1, 2, 3, 4), array(5, 6, 7) );
变为
?ids=1,2,3,4+5,6,7
答案 3 :(得分:0)
您可以使用此方法来阻止任何歧义消除:
?ids=1|2|3|4||23|34|45
易于实施和阅读。
在接收方结束时,您只需要将GET参数分解回数组,例如:
$par=explode($_GET[ids],"||");
或
$par=explode($_GET[ids],"|");