如何从数组中获取值并显示为选择列表选项


How to get a values from array and display as select list option

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

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

试试这个

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

foreach循环是您的最佳选择。

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