【问题标题】:Generate "select inputs" through loops in arrays通过数组中的循环生成“选择输入”
【发布时间】:2016-10-14 19:42:57
【问题描述】:

我有以下数组:

$selects = array(
        'Select1' => array('select1_name' => array('select1_value1','select1_value1')),
        'Select2' => array('select2_name' => array('select2_value1','select2_value2'))
    );

我想知道如何通过循环生成这些“选择输入”及其选项?

【问题讨论】:

    标签: php arrays loops foreach while-loop


    【解决方案1】:

    您需要一个循环,它将循环通过选择数组,在此循环内,您需要另一个循环,它将循环通过选择。而在这个里面,你还需要一个,它将遍历选项值:

    $selects = array(
        'Select1' => array('select1_name' => array('select1_value1','select1_value1')),
        'Select2' => array('select2_name' => array('select2_value1','select2_value2'))
    );
    
    foreach($selects as $select) {
        foreach($select as $item) {
            echo "<select>";
            foreach($item as $value) {
                echo "<option value=".$value.">".$value."</option>";
            }
            echo "</select>";
        }
    }
    

    这将产生:

    <select>
      <option value=select1_value1>select1_value1</option>
      <option value=select1_value1>select1_value1</option>
    </select>
    <select>
      <option value=select2_value1>select2_value1</option>
      <option value=select2_value2>select2_value2</option>
    </select>

    【讨论】:

      【解决方案2】:
      foreach($selects as $select) {
           foreach($select as $selectName => $value) {
                echo '<select> ';
                  echo '<option>'.$selectName.'</option>';
                  foreach($value as $v) {
                      echo '<option>'.$v.'</option>';
                  }
                echo '</select>';
           }
      }
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
      【解决方案3】:
      echo '<select> ';
          foreach($selects as $array) {       
           foreach($array as $value) {    
                      foreach($value as $v) {
                      echo '<option value="'.$v.'">'.$v.'</option>';
                  }}}       
         echo '</select>';
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
      • @Rizier123 同意 :)
      猜你喜欢
      • 1970-01-01
      • 2015-04-15
      • 2019-04-17
      • 2016-04-26
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 2012-12-27
      • 2020-09-12
      相关资源
      最近更新 更多