2012-07-11 55 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