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

时间:2013-12-11 20:33:47

标签: php arrays wordpress

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

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

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

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

foreach循环是您最好的选择。

<?php
    $selectData = get_district();
    $selectData = $selectData[0]['choices'];

    $select = "<select>";
    foreach($selectData as $key => $value){
        $select .= "<option value='$value'>$key</option>";
    }
    $select .= "</select>";