Como forma eficiente pesquisar uma matriz para preencher os campos do formulário?

StackOverflow https://stackoverflow.com/questions/84800

  •  01-07-2019
  •  | 
  •  

Pergunta

Eu estou procurando uma maneira eficiente para puxar os dados que eu quero de um array chamado $ submission_info para que eu possa facilmente auto-encher meus campos do formulário. O tamanho da matriz é de cerca de 120.

Eu quero encontrar o nome do campo e extrair o conteúdo. Neste caso, o nome do campo é loanOfficer eo conteúdo é 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 
     ) 

Eu quero encontrar o nome do campo e extrair o conteúdo. Neste caso, o nome do campo é loanOfficer eo conteúdo é John Doe .

Foi útil?

Solução

Você é provavelmente melhor fora de ir através de cada entrada e criar uma nova matriz associativa fora dele.

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

Depois, você pode encontrar apenas os campos do formulário, obtendo o valor de US $ newArray [ ]. Caso contrário, você vai ter que procurar $ submission_info cada vez para o campo correto.

Outras dicas

Não se esta é a solução ideal:

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

Da próxima vez: As perguntas são mais útil para você e os outros se você generalizá-los de tal forma que eles cobrem algum tema abrangente que você e talvez outros não entendem. Parece que você poderia usar um curso de reciclagem variedade ...

Estou assumindo que o PHP tem uma matriz associativa (comumente chamado de dicionário ou hashtable). A rotina mais eficiente seria a correr sobre a matriz uma vez e colocar os campos em um dicionário com chave no nome do campo.

Então, em vez de ter que procurar através da matriz original quando você quiser encontrar um campo específico (uma (n) O) operação. Você acabou de usar o dicionário para recuperá-la pelo nome do campo em uma O (1) (ou constante) operação. Claro que a primeira passagem sobre a matriz para preencher o dicionário seria O (n), mas isso é um custo de uma vez ao invés de pagar essa mesma penalidade para cada pesquisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top