【问题标题】:Array values into foreach loop don't display correctly进入 foreach 循环的数组值无法正确显示
【发布时间】:2017-08-21 08:18:38
【问题描述】:

下面的数组是查询到数组中的结果

$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、W​​OMAN、KID 等......)

我不知道如何在 foreach 循环中引用它们。

有什么帮助吗?

【问题讨论】:

    标签: php mysql arrays foreach


    【解决方案1】:

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

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

    【讨论】:

    • trincot,它现在可以工作,给出预期的结果。谢谢!
    【解决方案2】:

    您的 PHP 部分必须是:

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

    【讨论】:

    • 是的,trincot 已经提供了相同的答案,经过测试并且有效
    【解决方案3】:
    <select class='form-control'>    
    <?php
     foreach ($array2 as $value){
       echo '<option value="' .$value[0] . '">' . $value[1] . '</option>';
      }
      echo '<select>';
    ?>
    </select>
    

    试试这个

    【讨论】:

    • $value[0] 显示所选选项的 id/value 和 $value[1] 显示列表,如 MAN、W​​OMAN、KID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2010-10-04
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2016-07-09
    相关资源
    最近更新 更多