如何使用PHP处理大型选择(数组、循环或随意)

如何使用PHP处理大型选择(数组、循环或随意),php,arrays,for-loop,select,html-select,Php,Arrays,For Loop,Select,Html Select,我对网站上的大型选择框感到进退两难。如果我有一个包含300多个选项的选择框,我应该使用数组、循环还是只添加每个选项 稍后,我必须使用for循环函数指定用户是否选择了此选项(使用MySQLi数据库检查) 我关心代码的速度 选项1-临时代码: <optgroup label='{$lang['c_010']}'> <option value='{$i_array_value[0]}' ".($g_interests_row_0 == 1 ? 'selected' : '')."

我对网站上的大型选择框感到进退两难。如果我有一个包含300多个选项的选择框,我应该使用数组、循环还是只添加每个选项

稍后,我必须使用for循环函数指定用户是否选择了此选项(使用MySQLi数据库检查)

我关心代码的速度

选项1-临时代码:

<optgroup label='{$lang['c_010']}'>
  <option value='{$i_array_value[0]}' ".($g_interests_row_0 == 1 ? 'selected' : '').">{$i_array_name[0]}/option>
  <option value='{$i_array_value[1]}' ".($g_interests_row_1 == 1 ? 'selected' : '').">{$i_array_name[1]}/option>
  <option value='{$i_array_value[2]}' ".($g_interests_row_2 == 1 ? 'selected' : '').">{$i_array_name[2]}/option>
  <option value='{$i_array_value[3]}' ".($g_interests_row_3 == 1 ? 'selected' : '').">{$i_array_name[3]}/option>
    <option $p_2_t data-subtext='{$lang['c_015']}' disabled></option>
      <option value='{$i_array_value[4]}' ".($g_interests_row_4 == 1 ? 'selected' : '').">{$i_array_name[4]}/option>
      <option value='{$i_array_value[5]}' ".($g_interests_row_5 == 1 ? 'selected' : '').">{$i_array_name[5]}/option>
      <option value='{$i_array_value[6]}' ".($g_interests_row_6 == 1 ? 'selected' : '').">{$i_array_name[6]}/option>
  <option value='{$i_array_value[7]}' ".($g_interests_row_7 == 1 ? 'selected' : '').">{$i_array_name[7]}/option>
  <option value='{$i_array_value[8]}' ".($g_interests_row_8 == 1 ? 'selected' : '').">{$i_array_name[8]}/option>
    <option $p_2_t data-subtext='{$lang['c_021']}' disabled></option>
      <option value='{$i_array_value[9]}' ".($g_interests_row_9 == 1 ? 'selected' : '').">{$i_array_name[9]}/option>
      <option value='{$i_array_value[10]}' ".($g_interests_row_10 == 1 ? 'selected' : '').">{$i_array_name[10]}/option>
      <option value='{$i_array_value[11]}' ".($g_interests_row_11 == 1 ? 'selected' : '').">{$i_array_name[11]}/option>
  <option value='{$i_array_value[12]}' ".($g_interests_row_12 == 1 ? 'selected' : '').">{$i_array_name[12]}/option>
  <option value='{$i_array_value[13]}' ".($g_interests_row_13 == 1 ? 'selected' : '').">{$i_array_name[13]}/option>
  <option value='{$i_array_value[14]}' ".($g_interests_row_14 == 1 ? 'selected' : '').">{$i_array_name[14]}/option>
  <option value='{$i_array_value[15]}' ".($g_interests_row_15 == 1 ? 'selected' : '').">{$i_array_name[15]}/option>
  <option value='{$i_array_value[16]}' ".($g_interests_row_16 == 1 ? 'selected' : '').">{$i_array_name[16]}/option>
  <option value='{$i_array_value[17]}' ".($g_interests_row_17 == 1 ? 'selected' : '').">{$i_array_name[17]}/option>
  <option value='{$i_array_value[18]}' ".($g_interests_row_18 == 1 ? 'selected' : '').">{$i_array_name[18]}/option>
    <option $p_2_t data-subtext='{$lang['c_033']}' disabled></option>
      <option value='{$i_array_value[19]}' ".($g_interests_row_19 == 1 ? 'selected' : '').">{$i_array_name[19]}/option>
      <option value='{$i_array_value[20]}' ".($g_interests_row_20 == 1 ? 'selected' : '').">{$i_array_name[20]}/option>
      <option value='{$i_array_value[21]}' ".($g_interests_row_21 == 1 ? 'selected' : '').">{$i_array_name[21]}/option>
      <option value='{$i_array_value[22]}' ".($g_interests_row_22 == 1 ? 'selected' : '').">{$i_array_name[22]}/option>
      <option value='{$i_array_value[23]}' ".($g_interests_row_23 == 1 ? 'selected' : '').">{$i_array_name[23]}/option>
      <option value='{$i_array_value[24]}' ".($g_interests_row_24 == 1 ? 'selected' : '').">{$i_array_name[24]}/option>
      <option value='{$i_array_value[25]}' ".($g_interests_row_25 == 1 ? 'selected' : '').">{$i_array_name[25]}/option>
      <option value='{$i_array_value[26]}' ".($g_interests_row_26 == 1 ? 'selected' : '').">{$i_array_name[26]}/option>
      <option value='{$i_array_value[27]}' ".($g_interests_row_27 == 1 ? 'selected' : '').">{$i_array_name[27]}/option>
      <option value='{$i_array_value[28]}' ".($g_interests_row_28 == 1 ? 'selected' : '').">{$i_array_name[28]}/option>
    <option $p_2_t data-subtext='{$lang['c_044']}' disabled></option>
      <option value='{$i_array_value[29]}' ".($g_interests_row_29 == 1 ? 'selected' : '').">{$i_array_name[29]}/option>
      <option value='{$i_array_value[30]}' ".($g_interests_row_30 == 1 ? 'selected' : '').">{$i_array_name[30]}/option>
      <option value='{$i_array_value[31]}' ".($g_interests_row_31 == 1 ? 'selected' : '').">{$i_array_name[31]}/option>
      <option value='{$i_array_value[32]}' ".($g_interests_row_32 == 1 ? 'selected' : '').">{$i_array_name[32]}/option>
  <option value='{$i_array_value[33]}' ".($g_interests_row_33 == 1 ? 'selected' : '').">{$i_array_name[33]}/option>
  <option value='{$i_array_value[34]}' ".($g_interests_row_34 == 1 ? 'selected' : '').">{$i_array_name[34]}/option>
  <option value='{$i_array_value[35]}' ".($g_interests_row_35 == 1 ? 'selected' : '').">{$i_array_name[35]}/option>
  <option value='{$i_array_value[36]}' ".($g_interests_row_36 == 1 ? 'selected' : '').">{$i_array_name[36]}/option>
  <option value='{$i_array_value[37]}' ".($g_interests_row_37 == 1 ? 'selected' : '').">{$i_array_name[37]}/option>
</optgroup>

{$i_数组_名称[0]}/option>
{$i_数组_名称[1]}/option>
{$i_数组_名称[2]}/option>
{$i_数组_名称[3]}/option>
{$i_数组_名称[4]}/option>
{$i_数组_名称[5]}/option>
{$i_数组_名称[6]}/option>
{$i_数组_名称[7]}/option>
{$i_数组_名称[8]}/option>
{$i_数组_名称[9]}/option>
{$i_数组_名称[10]}/option>
{$i_数组_名称[11]}/option>
{$i_数组_名称[12]}/option>
{$i_数组_名称[13]}/option>
{$i_数组_名称[14]}/option>
{$i_数组_名称[15]}/option>
{$i_数组_名称[16]}/option>
{$i_数组_名称[17]}/option>
{$i_数组_名称[18]}/option>
{$i_数组_名称[19]}/option>
{$i_数组_名称[20]}/option>
{$i_数组_名称[21]}/option>
{$i_数组_名称[22]}/option>
{$i_数组_名称[23]}/option>
{$i_数组_名称[24]}/option>
{$i_数组_名称[25]}/option>
{$i_数组_名称[26]}/option>
{$i_数组_名称[27]}/option>
{$i_数组_名称[28]}/option>
{$i_数组_名称[29]}/option>
{$i_数组_名称[30]}/option>
{$i_数组_名称[31]}/option>
{$i_数组_名称[32]}/option>
{$i_数组_名称[33]}/option>
{$i_数组_名称[34]}/option>
{$i_数组_名称[35]}/option>
{$i_数组_名称[36]}/option>
{$i_数组_名称[37]}/option>
选项2-用于循环:

  for ($j = 0; $j < 367; $j++) {

    $interests_rows = 'g_interests_row_'.$j;
    $demographics_rows = 'g_demographics_row_'.$j;

    $$interests_rows = $db->QueryGetNumRows("$modules_rows_count FIND_IN_SET('".$i_array_value[$j]."', interests)");
    $$demographics_rows = $db->QueryGetNumRows("$modules_rows_count FIND_IN_SET('".$d_array_value[$j]."', demographics)");


    if ($j == 0) {
      echo "<optgroup label='{$lang['c_010']}'>";
    } elseif ($j <= 4) {
      echo $am_sh_di_1;
    } elseif ($j == 5) {
      echo "<option $p_2_t data-subtext='{$lang['c_015']}' disabled></option>";
    } elseif ($j <= 8) {
      echo $am_sh_di_1;
    } elseif ($j <= 10) {
      echo $am_sh_di_2;
    } elseif ($j == 11) {
      echo "<option $p_2_t data-subtext='{$lang['c_021']}' disabled></option>";
    } elseif ($j <= 14) {
      echo $am_sh_di_1;
    } elseif ($j <= 22) {
      echo $am_sh_di_2;
    } elseif ($j == 23) {
      echo "<option $p_2_t data-subtext='{$lang['c_033']}' disabled></option>";
    } elseif ($j <= 33) {
      echo $am_sh_di_1;
    } elseif ($j == 34) {
      echo "<option $p_2_t data-subtext='{$lang['c_044']}' disabled></option>";
    } elseif ($j <= 38) {
      echo $am_sh_di_1;
    } elseif ($j <= 43) {
      echo $am_sh_di_2;
    } elseif ($j == 44) {
      echo '</optgroup>';
    }

    if ($j >= count($d_array_value)) {
      $r_interests = ${"g_interests_row_".($j - count($d_array_value)).""};
    } else {
      $r_demographics = ${"g_demographics_row_$j"};
    }

  }
($j=0;$j<367;$j++)的
{
$interests\u rows='g\u interests\u row.$j;
$demographics_rows='g_demographics_row.$j;
$$interests\u rows=$db->QueryGetNumRows($modules\u rows\u count FIND\u IN\u SET(““$i\u数组\u值[$j]”.“,interests)”);
$$demographics_rows=$db->QueryGetNumRows($modules_rows_count FIND_IN_SET(“$d_array_value[$j]”,人口统计)”);
如果($j==0){
回声“;

}埃尔塞夫(J J想象一下,如果你关心代码的速度,用户会如何寻找价值,做一些基准测试。你还应该考虑代码是如何维护的,以及你将用什么样的用户体验来创建你的300奇项选择框。对于这种大量的选择,考虑使用AutoWrand字段W。ith jqueryui变量通常表示次优的数据存储设计。一定要使用智能数学和条件过程迭代数组数据。您可能希望查看类似于或插件的内容,以向所选元素添加自动完成和可搜索性功能。
$test = array(
  "<optgroup label='{$lang['c_010']}'>",
  array(
    "<option value='{$i_array_value[0]}' ".($g_interests_row_0 == 1 ? 'selected' : '').">{$i_array_name[0]}/option>",
    "<option value='{$i_array_value[1]}' ".($g_interests_row_1 == 1 ? 'selected' : '').">{$i_array_name[1]}/option>",
    "<option value='{$i_array_value[2]}' ".($g_interests_row_2 == 1 ? 'selected' : '').">{$i_array_name[2]}/option>",
    "<option value='{$i_array_value[3]}' ".($g_interests_row_3 == 1 ? 'selected' : '').">{$i_array_name[3]}/option>",
    array(
      "<option $p_2_t data-subtext='{$lang['c_015']}' disabled></option>",
      array(
        "<option value='{$i_array_value[4]}' ".($g_interests_row_0 == 1 ? 'selected' : '').">{$i_array_name[4]}/option>",
        ...
      )
    )
  )
)