2012-07-11 51 views
1

我只需要知道它是html輸入名稱就需要檢索一個php變量。通過html名稱格式檢索php變量

如:我知道輸入的名是admin [用戶名],所以我希望得到變量$ _ POST [「管理員」] ['用戶名]

我需要這個了某種輸入驗證的。換句話說,我在顯示錶單時保存了html輸入名稱,但只在下一個服務器請求時進行測試,所以我並不總是知道php變量名是什麼,因爲它可以通過javascript或I進行修改可以陣列,如果HTML輸入名是admin []

謝謝

+0

您正在尋找'$ _ POST [ '管理員'] []'數組元素? – Peon 2012-07-11 13:44:30

+0

你的html如下? ''? – 2012-07-11 13:44:56

+0

@DainisAbols如果我傳遞字符串「admin []」,我會尋找$ _POST ['admin'] [] yes,但它可以很簡單「admin」,「admin [username]」,「admin [username] []「或」admin [username] [] [test]「當然,這僅僅是例子,名字並不代表任何東西 – Etienne 2012-07-11 13:47:57

回答

2
$postdata = get_associative_array_from_post_data($post['admin']); 

function get_associative_array_from_post_data($array){ 
    if(isAssoc($array)){ 
     /*foreach($array as $key=>$value){ 
      $your_key = $key; 
      $your_value = $value; 
     }*/ 
     return $array; 
    } 
    else{ //if the post array has no keys, search for arrays within this 
     $key_collection=array(); 
     foreach($array as $sub_array){ 

      foreach($sub_array as $key=>$value){ 
       $key_collection[$key][] = $value; 
      } 
     } 
     return $key_collection; 
    } 

}  



function isAssoc($arr) 
{ 
    return array_keys($arr) !== range(0, count($arr) - 1); 
} 

如果後:

管理員[用戶名] = '測試' 和admin [郵件] =「測試@ example.com'

你會得到

$postdata = array('username'=>'test', 'email'=>'[email protected]'); 

如果後: 管理員[] [用戶名] = '測試' 和admin [] [用戶名] = 'test2的' 管理員[] [郵件] = '[email protected]' 和admin [ ] [郵件] = '[email protected]'

您將獲得:

$postdata = array(
         'username'=>array('test', 'test2'), 
         'email'=>array('[email protected]', '[email protected]') 
       ); 
+0

我喜歡你的想法來驗證,如果這是一個關聯數組,這肯定會幫助我 Thx – Etienne 2012-07-11 15:38:53