foreach循环中的数组值无法正确显示

时间:2017-08-21 08:18:39

标签: php mysql arrays foreach

以下数组是获取到数组

中的查询的结果
$array2 = mysqli_fetch_all($par_cat, MYSQL_NUM); 

阵列

array(10) {
  [0]=>
  array(2) {
    [0]=>
    string(3) "365"
    [1]=>
    string(7) "MAN"
  }
  [1]=>
  array(2) {
    [0]=>
    string(3) "381"
    [1]=>
    string(5) "WOMAN"
  }
  [2]=>
  array(2) {
    [0]=>
    string(3) "347"
    [1]=>
    string(4) "KID"
  }
  ......
}

这些值应该显示在我实现为:

的foreach循环中

HTML

<select class='form-control'>    
  <?php
     foreach ($array2 as $key => $value){
       echo '<option value="' .$value . '">' . $key . '</option>';
      }
      echo '<select>';
   ?>

结果

https://pasteboard.co/GGEhDU5.png

问题出在列出的值上,如上面的链接所示。结果它给出了值的数量而不是值本身(例如MAN,WOMAN,KID等......)

我无法弄清楚如何将它们引用到foreach循环中。

有任何帮助吗?

3 个答案:

答案 0 :(得分:3)

数值是由$key生成的索引,行由$value表示。因此,在代码中交换它,并获取正确的值(来自第1列),所以你有:

echo '<option value="' . $key . '">' . $value[1] . '</option>';

答案 1 :(得分:1)

<select class='form-control'>    
<?php
 foreach ($array2 as $value){
   echo '<option value="' .$value[0] . '">' . $value[1] . '</option>';
  }
  echo '<select>';
?>
</select>

试试这个

答案 2 :(得分:0)

你的PHP部分必须是:

<?php
    foreach ($array2 as $key => $value){
       echo '<option value="' . $key . '">' . $value[1] . '</option>';
    }
  echo '<select>';
?>