如何在PHP中传递GET中的数组?

Yon*_*oni 21 php arrays

$idArray = array(1,2,3,4);
Run Code Online (Sandbox Code Playgroud)

我可以用HTML写这行吗?

<form method='POST' action='{$_SERVER['PHP_SELF']}?arr={$idArray}'>
Run Code Online (Sandbox Code Playgroud)

或者我应该写:

<form method='POST' action='{$_SERVER['PHP_SELF']}?arr[]={$idArray}'>
Run Code Online (Sandbox Code Playgroud)

怎么会通过?

我应该如何在被调用的页面中处理它?

谢谢 !!

Fel*_*ing 44

如果要将数组作为参数传递,则必须为每个元素添加参数.您的查询字符串将变为:

?arr[]=1&arr[]=2&arr[]=3&arr[]=4
Run Code Online (Sandbox Code Playgroud)

正如其他人所写,您也可以序列化和反序列化数组.

但是你真的必须再次将数据发送给客户端吗?看起来你只需要一种方法来保持请求之间的数据.

在这种情况下,最好使用会话(docs).这也更安全,否则客户端可以修改数据.

  • 你能用这种方法指定密钥吗? (3认同)

Svi*_*ack 8

使用serializeunserializePHP功能.此函数为您提供可存储(字符串)版本的数组类型.有关使用的更多信息,请阅读 http://php.net/manual/en/function.serialize.phphttp://www.php.net/manual/en/function.unserialize.php

  • @Pekka,@ Nick和@John Hunt我指的是"array_pack"或类似Svisstack在他用序列化解决方案替换它之前发布的东西.我知道那些看我的解决方案. (2认同)