繁体   English   中英

数组内部具有数组的多个foreach循环

[英]Multiple foreach loops with arrays inside of an array

我有一个看起来像这样的数组:

$array = array(
   'val1' => array('en'=>'Option Title 1','a'=>1),
   'val2' => array('en'=>'Option Title 2','b'=>2),
   'val3' => array('en'=>'Option Title 3','c'=>3)
);

我尝试运行此代码来生成选择框:

function setOptions($array){
    echo '<select name="select">';
    foreach($array as $key_parent => $val_parent){
        foreach($val_parent as $key => $val){
            if($key !== 'en'){
                $option_value = $val;
            }elseif($key == 'en'){
                $option_title = $val;
            }
        }
        echo '<option value"'.$option_value.'">'.$option_title.'</option>';
    }
    echo '<select>';
}

这会打印出我所期望的。

<select name="select">
  <option value="1">Option Title 1</option>
  <option value="2">Option Title 2</option>
  <option value="3">Option Title 3</option>
</select>

但是,当我从表单提交中打印$_POST['select']的返回值时,我得到了Option Title 1Option Title 2Option Title 3 ,而不是我认为很奇怪的1,2 or 3

因此,剩下的问题是,当所讨论的值之一的键未知(a,b或c)时,如何在val1,val2,val3内获取值?

您错过了均等价值属性。

function setOptions($array){
    echo '<select name="select">';
    foreach($array as $key_parent => $val_parent){
        foreach($val_parent as $key => $val){
            if($key !== 'en'){
                $option_value = $val;
            }elseif($key == 'en'){
                $option_title = $val;
            }
        }
        echo '<option value="'.$option_value.'">'.$option_title.'</option>';
    }
    echo '<select>';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM