私は配列を持っています
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',....);
)
);
私が望むのは、キーsysnameが存在する場合に$_POSTを検索し、配列「名前」を返すことです..
$_POST['KEY_TO_MATCH1'] が存在する場合の例 XX を返す
編集
配列構造の説明:
配列はdbテーブルをフェッチした結果です
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などを使用して...}