Nasıl verimli form alanları doldurmak için bir dizi arama yapabilirim?

3 Cevap php

Ben bu yüzden kolayca benim form alanları otomatik doldurabilirsiniz $ submission_info adlandırılan bir dizi dışarı istediğim verileri çekmek için etkili bir yol arıyorum. Dizi boyutu yaklaşık 120 olduğunu.

Ben alan adı bulmak ve içeriğini ayıklamak istiyorum. Bu durumda, alan adı olan loanOfficer ve içeriğin John Doe.

Print_r ($ submission_info [1]) Çıktı:

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 
     ) 

Ben alan adı bulmak ve içeriğini ayıklamak istiyorum. Bu durumda, alan adı olan loanOfficer ve içeriğin John Doe.

3 Cevap

Her giriş geçiyor ve bunun dışında yeni bir ilişkisel dizi oluşturma muhtemelen kapalı en iyi konum.

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

Sonra sadece $ yeni_dizi itibaren değerini alma form alanları bulabilirsiniz [<field you're filling in>]. Aksi takdirde, doğru alanı için $ submission_info her zaman aramak zorunda gidiyoruz.

Bu optimum çözüm olup olmadığından emin değil:

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
  }
}

Next time: Questions are more helpful to you and others if you generalize them such that they cover some overarching topic that you and maybe others don't understand. Seems like you could use an array refresher course...

Ben php bir ilişkisel dizi (genellikle sözlük veya Hashtable denir) sahip olduğunu varsayarak yaşıyorum. En verimli rutin kez dizinin üzerinde çalıştırmak ve alan adı üzerinde anahtarlı bir sözlüğe alanları koymak olacaktır.

Sonra yerine belirli bir alanı (O (n)) işlemi bulmak istediğiniz zaman orijinal dizi üzerinden aramak zorunda. Sen sadece O (1) (veya sabit) bir operasyon alanın ismiyle almak için sözlük kullanılır. Tabii sözlüğü doldurmak için dizinin üzerine ilk geçiş O (n) olurdu ama bu yerine her arama için aynı cezayı ödemekten daha bir defalık maliyeti bulunuyor.