我正在尝试接受未知数量的类似命名的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变量而不知道它们的数量?如果我知道会发生什么,我可以创建数组,但在这种情况下,我无法告诉会发生什么。
答案 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;可能行不通,但我想你会明白这一点。