Php 向二维数组添加/获取数据';行不通

Php 向二维数组添加/获取数据';行不通,php,html,mysql,arrays,Php,Html,Mysql,Arrays,我试图将数据库中的数据添加到二维数组中,然后解包 此函数位于名为imsConnection.php的文件夹中 function getCurrency() { global $cn; $sql = "select * from Currency"; $res = mysqli_query($cn, $sql); $a = array(); if (mysqli_num_rows($res) > 0) { while ($row = mysqli_fetch_ar

我试图将数据库中的数据添加到二维数组中,然后解包

此函数位于名为
imsConnection.php的文件夹中

function getCurrency() {
  global $cn;
  $sql = "select * from Currency";
  $res = mysqli_query($cn, $sql);
  $a = array();
  if (mysqli_num_rows($res) > 0) {
    while ($row = mysqli_fetch_array($res)) {
      $a[] = array($row['currencyID'], $row['currencyName']);
    }
  }
  return $a;
}
并将其解包到投递箱中:

<select name="drpCurrency" required>
  <?php
    require_once("imsConnection.php");
    $a = getCurrency();
    foreach($a as $i) {
      echo "<option value='$i'>$a[$i]</option>";
    }
  ?>
</select>


正式回答:如果创建多维数组并使用
foreach
循环,则需要根据需要的键回显值。就你而言:

    foreach($a as $i)
        echo "<option value='" . $i["currencyID"] ."'>" . $i['currencyName'] . "</option>";
然后您可以将其用作:

$a = getCurrency();
foreach($a as $k => $i)
    echo "<option value='$k'>$i/option>";
$a=getCurrency();
foreach($a为$k=>$i)
回显“$i/选项>”;

假设您希望值作为货币ID,选项内容作为货币名称

您不需要
$a[$i]
,因为
$i
已经是元素-只需回显
$i['currencyName']
$a = getCurrency();
foreach($a as $k => $i)
    echo "<option value='$k'>$i/option>";