如何有效搜索数组以填写表单字段?

时间:2020-03-05 18:59:14  来源:igfitidea点击:

我正在寻找一种有效的方法将所需的数据从一个名为$ submission_info的数组中提取出来,这样我可以轻松地自动填充表单字段。阵列大小约为120。

我想找到字段名称并提取内容。在这种情况下,字段名称为loanOfficer,内容为John Doe。

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,内容为John Doe。

解决方案

回答

我假设php具有关联数组(通常称为字典或者哈希表)。最有效的例程是对数组运行一次​​,然后将字段放入以字段名称为关键字的字典中。

然后,当我们要查找特定字段(O(n))操作时,不必搜索原始数组。我们只是使用字典通过O(1)(或者常量)操作中的字段名称来检索它。当然,通过数组填充字典的第一遍将是O(n),但这是一次性的费用,而不是每次查询都要付出相同的代价。

回答

我们最好是遍历每个条目并从中创建一个新的关联数组。

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

然后,我们可以通过从$ newarray [<我们要填写的字段>]中获取值来查找表单字段。否则,我们将不得不每次都在$ submission_info中搜索正确的字段。

回答

不确定这是否是最佳解决方案:

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

下次:
如果将问题概括化,使问题涵盖我们和其他人可能不理解的总体主题,则对我们和其他人更有用。似乎我们可以使用数组复习课程...