我有数组
Array('0284'=>array('name'='XX',
'inputs'=array(
array('sysname'=>'KEY_TO_MATCH1',....);
array('sysname'=>'KEY_TO_MATCH2',....);
),
'0287'=>array('name'='YYY',
'inputs'=array(
array('sysname'=>'KEY_TO_MATCH3',....);
array('sysname'=>'KEY_TO_MATCH4',....);
)
);
我想要的是搜索 $_POST 如果密钥 sysname 存在然后返回数组'name'..
例如,如果 $_POST['KEY_TO_MATCH1'] 存在则返回 XX
编辑
数组结构说明:
数组是获取数据库表的结果
plugins(id,name,user_id)
plugins_inputs(id,plugin_id(FK),sysname,label,value,extra_attrs)
我所做的是获取所有插件及其输入,然后通过 pluigns_id 将它们分开
Array('plugins.id'=>array('name'='plugins.name',
'inputs'=array(//all rows from plugins_inputs where plugin_id=plugins.id
array('sysname'=>'KEY_TO_MATCH1',....);
array('sysname'=>'KEY_TO_MATCH2',....);
)
plugins.id 作为关键:避免重复,因为我不能信任 form.name
plugins.name :指向处理这些输入的函数名
plugins_inputs :包含多行输入
现在我想听 $_POST 案例中的任何这些输入,然后将其重定向到处理它的特定表单函数。$this->${plugins.name}->backend();
目前使用
foreach($array as $id=>$val){
foreach($val['inputs'] as $input)
//$this->input->post is codeigniter help to handle $_POST[] if it doesnt exist it return false
if($this->input->post([$input['sysname']])runbackend($val['name'],$id);
}
但我想知道是否有更聪明的方法来做到这一点.. 使用 array_filter 或 array_map 或其他东西......}