【问题标题】:How to get a values from array and display as select list option如何从数组中获取值并显示为选择列表选项
【发布时间】:2013-12-11 20:33:46
【问题描述】:

在其中一个插件的 WordPress 数据库中,值作为数组输入到管理员的字段中。现在我想从该数组中获取值并显示在页面中。

我创建了一个函数,效果很好。

// Pull district from database
function get_district(){
    global $wpdb;
    $current_demand = get_metadata('post', 205, 'field_52a7cb0d1edb0');
    return $current_demand;
}

在我想使用数组值的页面上,我执行了 var_dump 来检查结果。这也很好用

var_dump(get_district());

从结果中返回的值采用这种格式。据我所知,它是一个数组。

array(1) { 
  [0]=> array(12) { 
    ["key"]=> string(19) "field_52a7cb0d1edb0" 
    ["label"]=> string(8) "District" 
    ["name"]=> string(8) "district" 
    ["type"]=> string(6) "select" 
    ["instructions"]=> string(0) "" 
    ["required"]=> string(1) "0" 
    ["choices"]=> array(10) { 
        ["suva"]=> string(4) "Suva" 
        ["nausori"]=> string(7) "Nausori" 
        ["nadi"]=> string(4) "Nadi" 
        ["lautoka"]=> string(7) "Lautoka" 
        ["ba"]=> string(2) "Ba" 
        ["tavua"]=> string(5) "Tavua" 
        ["rakiraki"]=> string(8) "RakiRaki" 
        ["tailevu"]=> string(7) "Tailevu" 
        ["navua"]=> string(5) "Navua" 
        ["labasa"]=> string(6) "Labasa" 
    } 
    ["default_value"]=> string(0) "" 
    ["allow_null"]=> string(1) "0" 
    ["multiple"]=> string(1) "0" 
    ["conditional_logic"]=> array(3) { 
        ["status"]=> string(1) "0" 
        ["rules"]=> array(1) { 
            [0]=> array(2) { 
                ["field"]=> string(4) "null" 
                ["operator"]=> string(2) "==" 
            } 
        } 
        ["allorany"]=> string(3) "all" 
    } 
    ["order_no"]=> int(1) 
  } 
}

所以我接下来要做的是分解它并从数组中查找特定值。现在我在函数上运行这段代码

    foreach(get_district() as $district => $key){
        $test = $key["choices"];
        var_dump($test);
    }

上面代码返回的结果是

array(10) { 
    ["suva"]=> string(4) "Suva" 
    ["nausori"]=> string(7) "Nausori" 
    ["nadi"]=> string(4) "Nadi" 
    ["lautoka"]=> string(7) "Lautoka" 
    ["ba"]=> string(2) "Ba" 
    ["tavua"]=> string(5) "Tavua" 
    ["rakiraki"]=> string(8) "RakiRaki" 
    ["tailevu"]=> string(7) "Tailevu" 
    ["navua"]=> string(5) "Navua" 
    ["labasa"]=> string(6) "Labasa" 
}

这是我的问题,我现在如何将值从此处获取到选择列表。这是我想在选择列表中使用的正确值。这是我第一次看到这样的东西。

【问题讨论】:

    标签: php arrays wordpress


    【解决方案1】:

    试试这个

    $districts =get_district(); /* get all data */
    $options="";
    /* loop through all the choices array  */
    foreach($districts[0]['choices'] as $key => $val){
    $options.="<option value='".$key."'>".$val."</option>";
        /* append the options of select in $options  */
    }
    

    在html中

    <select name="districts">
    <?php echo $options; ?>
    </select>
    

    【讨论】:

      【解决方案2】:

      foreach 循环是您最好的选择。

      <?php
          $selectData = get_district();
          $selectData = $selectData[0]['choices'];
      
          $select = "<select>";
          foreach($selectData as $key => $value){
              $select .= "<option value='$value'>$key</option>";
          }
          $select .= "</select>";
      

      【讨论】:

      • 对不起,这段代码给了我“警告:为 foreach() in 提供的参数无效”
      • @navneil-naicker 我引用了错误的数组元素。我已经更新了代码 $selectData = $selectData[0]['choices'];
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 2020-07-23
      • 2016-02-03
      • 1970-01-01
      • 2017-01-09
      • 2013-04-23
      相关资源
      最近更新 更多