使用PHP从查询字符串中获取数组参数

使用PHP从查询字符串中获取数组参数,php,arrays,query-string,querystringparameter,Php,Arrays,Query String,Querystringparameter,(注意:这是上一个问题的后续问题,我问了关于在查询字符串中传递数组的标准方法。) 我现在有一些PHP代码需要使用上述查询字符串——PHP识别什么样的查询字符串数组格式,我需要做什么特殊的事情来检索数组 以下内容似乎不起作用: 查询字符串: ?formparts=[a,b,c] $myarray = $_GET["formparts"]; echo gettype($myarray) string PHP: ?formparts=[a,b,c] $myarray = $_GET["form

注意:这是上一个问题的后续问题,我问了关于在查询字符串中传递数组的标准方法。)

我现在有一些PHP代码需要使用上述查询字符串——PHP识别什么样的查询字符串数组格式,我需要做什么特殊的事情来检索数组

以下内容似乎不起作用:

查询字符串:

?formparts=[a,b,c]
$myarray = $_GET["formparts"];
echo gettype($myarray)
string
PHP:

?formparts=[a,b,c]
$myarray = $_GET["formparts"];
echo gettype($myarray)
string
结果:

?formparts=[a,b,c]
$myarray = $_GET["formparts"];
echo gettype($myarray)
string

您的查询字符串应该如下所示:

?formparts[]=a&formparts[]=b&formparts[]=c

如果您处理的是查询字符串,那么您将看到
$\u GET
变量。这将包含前面问题中
后面的所有内容

所以你要做的是与另一个问题相反的事情

$products = array();
// ... Add some checking of $_GET to make sure it is sane
....
// then assign..
$products = explode(',', $_GET['pname']);

对于每个变量,依此类推。我必须在这里给您一个完整的警告,您必须检查
$\u GET
变量中的内容,以确保它是正常的。否则你的网站就有被破坏的风险

下次试着更好地解释你的问题,因为现在无法理解php中只有一种类型的数组,即“数组”。格式取决于您输入的内容。@yes123,@MarcB-请参阅修订版question@KyleWppd-我说的是在查询字符串中传递数组,而不是查询字符串GET数组本身——请参阅PHP中@soulmerge的answerBy定义,作为
$\u GET
$\u POST
请求的一部分传递的变量是字符串。我不能说soulmerge的答案是否有效,但他使用的语法与您不同。