如何将类似命名的POST变量转换为数组?

时间:2011-12-08 16:49:32

标签: php arrays post

我正在尝试接受未知数量的类似命名的POST变量,如下所示:

foo[bar[0]] = 56
foo[bar[1]] = 43
foo[bar[2]] = ah84
foo[bar[3]] = 92hs

我的其他POST数据看起来像:

foo[baz] = 1432
foo[expected] = 48hf

有些请求可能没有foobars,但大多数都有1,有些请求有2-4。

理想情况下,我希望以数组结尾:array( 56, 43, ah84, 92hs)

有没有办法循环POST变量而不知道它们的数量?如果我知道会发生什么,我可以创建数组,但在这种情况下,我无法告诉会发生什么。

3 个答案:

答案 0 :(得分:1)

查看this example可能会有所帮助。

如果你知道你有一个数组(有非顺序索引)并且你不关心顺序,那么最便宜和最简单的修复将是array_values

在你的情况下,它就像$some_var = array_values($_POST['foo']['bar'])

答案 1 :(得分:0)

一种可能的解决方案:

$vars = array_unique($your_post_data);

答案 2 :(得分:0)

您可以获取请求标头并从中获取帖子信息。

<?php
$header = getallheaders();
$postInfo = explode("&", $header[count($header) - 1]);
for($i = 0; $i < count($postInfo); $i++)
{
$a = explode("=", $postInfo[$i]);
$postInfo[$i] = $a[1];
}
?>

未经测试&amp;可能行不通,但我想你会明白这一点。