كيف يمكنني البحث بكفاءة في مصفوفة لملء حقول النموذج؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

أنا أبحث عن طريقة فعالة لسحب البيانات التي أريدها من مصفوفة تسمى $submission_info حتى أتمكن بسهولة من ملء حقول النموذج تلقائيًا.حجم المصفوفة حوالي 120

أريد العثور على اسم الحقل واستخراج المحتوى.في هذه الحالة، اسم الحقل هو ضابط القرض والمحتوى هو فلان الفلاني.

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 
     ) 

أريد العثور على اسم الحقل واستخراج المحتوى.في هذه الحالة، اسم الحقل هو ضابط القرض والمحتوى هو فلان الفلاني.

هل كانت مفيدة؟

المحلول

ربما يكون من الأفضل لك مراجعة كل إدخال وإنشاء مصفوفة ترابطية جديدة منه.

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

المرة التالية:تكون الأسئلة أكثر فائدة لك وللآخرين إذا قمت بتعميمها بحيث تغطي موضوعًا شاملاً لا تفهمه أنت وربما الآخرون.يبدو أنه يمكنك استخدام دورة لتجديد المصفوفة ...

أفترض أن php يحتوي على مصفوفة ترابطية (تُسمى عادةً القاموس أو hashtable).سيكون الروتين الأكثر فعالية هو تشغيل المصفوفة مرة واحدة ووضع الحقول في قاموس مرتبط باسم الحقل.

ثم بدلاً من الاضطرار إلى البحث في المصفوفة الأصلية عندما تريد العثور على حقل معين (عملية O(n)).لقد استخدمت القاموس للتو لاسترداده حسب اسم الحقل في عملية O(1) (أو ثابتة).بالطبع، سيكون المرور الأول على المصفوفة لملء القاموس هو O(n) ولكن هذه تكلفة لمرة واحدة بدلاً من دفع نفس العقوبة لكل عملية بحث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top