0

フォームフィールドを簡単に自動入力できるように、$submission_infoという配列から必要なデータを引き出す効率的な方法を探しています。配列サイズは約120です。

フィールド名を見つけて内容を抽出したい。この場合、フィールド名はloanOfficerで、コンテンツはJohnDoeです。

Output of Print_r($submission_info[1]):

Array ( 
     [field_id] => 2399 
     [form_id] => 4 
     [field_name] => loanOfficer 
     [field_test_value] => ABCDEFGHIJKLMNOPQRSTUVWXYZ 
     [field_size] => medium 
     [field_type] => other 
     [data_type] => string 
     [field_title] => LoanOfficer 
     [col_name] => loanOfficer 
     [list_order] => 2 
     [admin_display] => yes 
     [is_sortable] => yes 
     [include_on_redirect] => yes 
     [option_orientation] => vertical 
     [file_upload_dir] => 
     [file_upload_url] => 
     [file_upload_max_size] => 1000000 
     [file_upload_types] => 
     [content] => John Doe 
     ) 

フィールド名を見つけて内容を抽出したい。この場合、フィールド名はloanOfficerで、コンテンツはJohnDoeです。

4

3 に答える 3

2

おそらく、各エントリを調べて、そこから新しい連想配列を作成するのが最善です。

foreach($submission_info as $elem) {
    $newarray[$elem["field_name"]] = $elem["content"];
}

次に、$newarray[ <入力しているフィールド> ]から値を取得することでフォームフィールドを見つけることができます。それ以外の場合は、毎回$submission_infoで正しいフィールドを検索する必要があります。

于 2008-09-17T16:37:12.283 に答える
1

これが最適な解決策かどうかはわかりません:

foreach($submission_info as $info){
  if($info['field_name'] == 'loanOfficer'){ //check the field name
    $content = $info['content']; //store the desired value
    continue; //this will stop the loop after the desired item is found
  }
}

次回: 質問は、あなたや他の人が理解していない包括的なトピックをカバーするように一般化すると、あなたや他の人にとってより役に立ちます。配列の復習コースを利用できるようです...

于 2008-09-17T16:45:55.337 に答える
0

PHPには連想配列(一般に辞書またはハッシュテーブルと呼ばれます)があると想定しています。最も効率的なルーチンは、配列を 1 回実行し、フィールド名をキーとするディクショナリにフィールドを配置することです。

次に、特定のフィールド (O(n)) 操作を見つけたいときに、元の配列を検索する代わりに。ディクショナリを使用して、O(1) (または定数) 操作でフィールドの名前で取得しました。もちろん、ディクショナリを作成するための配列の最初のパスは O(n) ですが、これはルックアップごとに同じペナルティを支払うのではなく、1 回限りのコストです。

于 2008-09-17T16:31:49.753 に答える