PHP:在页面之间传递多维数组?序列化/取消序列化不工作

PHP:在页面之间传递多维数组?序列化/取消序列化不工作,php,arrays,forms,serialization,xhtml,Php,Arrays,Forms,Serialization,Xhtml,我使用隐藏表单在页面之间传递变量(使用POST)。对于标量变量,它工作得很好;然而,当我尝试使用我假定传递的数组时,看起来我实际得到的值是“Array” 我在互联网上搜索了一个解决方案,看起来很有希望,但考虑到我的数组包含其他数组,我不知道这是否可行 然后我看到了,并希望这可能会奏效,但它不起作用。我试过了,但还是不行。这是我在表单页面上的代码: $sendInfo = base64_encode(serialize($info)); echo '<input type="hidden"

我使用隐藏表单在页面之间传递变量(使用POST)。对于标量变量,它工作得很好;然而,当我尝试使用我假定传递的数组时,看起来我实际得到的值是“Array”

我在互联网上搜索了一个解决方案,看起来很有希望,但考虑到我的数组包含其他数组,我不知道这是否可行

然后我看到了,并希望这可能会奏效,但它不起作用。我试过了,但还是不行。这是我在表单页面上的代码:

$sendInfo = base64_encode(serialize($info));
echo '<input type="hidden" name="info" id="info" value="'.$sendInfo.'"/>';

有人知道为什么这不起作用吗?是否有修复方法,或者您对传递阵列有其他建议吗?

如果没有更多信息,我将无法提供帮助,我可以建议使用。这会让事情变得更简单。

如果没有更多的信息,我会帮你推荐使用。这将使事情变得更容易。

我建议使用会话。这很容易

第1页:

session_start(); //at the top of each page
$_SESSION['info'] = $info;
第2页:

  session_start(); //at the top of each page
    print_r($_SESSION['info']);

如果由于某些奇怪的原因,这对您不起作用,请使用json_编码和json_解码,而不是使用serialise

第1页:

$sendInfo = base64_encode(json_encode($info));
echo '<input type="hidden" name="info" id="info" value="'.$sendInfo.'"/>';
$sendInfo=base64_编码(json_编码($info));
回声';
第2页:

$info=(数组)json_解码(base64_解码($_POST['info']); var_dump($info)

你可能会发现一些信息现在已经变成了对象。JSON不支持关联数组(以单词为键的数组),因此它将它们转换为对象。我已经将其类型转换为数组,但这只会在顶层进行类型转换。如果要递归地进行类型转换,请使用“object2array”。查看我的第一个谷歌搜索结果:


我建议使用会话。这很容易

第1页:

session_start(); //at the top of each page
$_SESSION['info'] = $info;
第2页:

  session_start(); //at the top of each page
    print_r($_SESSION['info']);

如果由于某些奇怪的原因,这对您不起作用,请使用json_编码和json_解码,而不是使用serialise

第1页:

$sendInfo = base64_encode(json_encode($info));
echo '<input type="hidden" name="info" id="info" value="'.$sendInfo.'"/>';
$sendInfo=base64_编码(json_编码($info));
回声';
第2页:

$info=(数组)json_解码(base64_解码($_POST['info']); var_dump($info)

你可能会发现一些信息现在已经变成了对象。JSON不支持关联数组(以单词为键的数组),因此它将它们转换为对象。我已经将其类型转换为数组,但这只会在顶层进行类型转换。如果要递归地进行类型转换,请使用“object2array”。查看我的第一个谷歌搜索结果:


我想我们需要更多关于它如何“不起作用”的信息我想我们需要更多关于它如何“不起作用”的信息