2011-12-08 73 views
1

我試圖接受類似下面的數目不詳的類似名稱的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變量的方式來循環不知道他們有多少?如果我知道會發生什麼,我可以創建數組,但在這種情況下,我無法告訴會發生什麼。

回答

1

看看this example可能有點幫助。

如果你知道你有一個數組(非順序指數),你不關心訂單,最便宜和最簡單的修復將是array_values

就你而言,它會像$some_var = array_values($_POST['foo']['bar'])

0

一個可能的解決方案:

$vars = array_unique($your_post_data); 
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]; 
} 
?> 

尚未測試&可能無法正常工作,但我想你會明白我的意思。