从数据库中获取数据并与静态数组匹配

时间:2019-03-28 09:32:42

标签: php mysql arrays jvectormap

我正在使用Jvector映射,因为我想根据数据库中作为字符串存在的国家/地区来找到国家/地区代码。

例如如果数据库中的国家/地区为 'Australia' ,则应自动将其转换为国家/地区代码 'AU' < / p>

假设我收到了多个国家/地区名称,它应该立即将所有名称自动自动转换为国家/地区代码。

我有一个与国家/地区代码关联的国家/地区名称数组, 例如。

    $keyvalue = 

  array("Bangladesh"=>"BD",
        "Belgium"=>"BE", 
        "Burkina Faso"=>"BF",
        "Bulgaria"=>"BG",
        "Bosnia and Herz"=>"BA", 
        "Brunei"=>"BN",
        "Bolivia"=>"BO",
        "Japan"=>"JP", 
        "Burundi"=>"BI", );

因为我所有的国家代码都存储在静态数组中。如何将它们与从数据库中获取的国家/地区名称匹配。

我尝试了以下php代码:

<?php
  $query = "SELECT user_country FROM users" ;
  $result = mysqli_query($conn,$query) ;

  foreach($keyvalue as $x => $x_value) {
 "Key=" . $x . ", Value=" . $x_value;
 "<br>";
}

foreach($result as $rec => $x_value)
{
echo  $rec['user_country'] ."  : "  . $rec[$x_value];
}   
?>

我希望我的问题清楚。我错过了什么以及如何说服这个特定问题。请原谅我的代码,其中可能有多个缺陷

1 个答案:

答案 0 :(得分:1)

我想您只是想从第二个循环中回显它们,在这种情况下,您可以使用

  $keyvalue = //your array here;
  $query = "SELECT user_country FROM users" ;
  $result = mysqli_query($conn,$query) ;
  echo "<table>";
  echo "<tr><th>Country</th><th>Country Code</th></tr>";
  while($row = mysqli_fetch_assoc($result)){
    echo "<tr> ";
        echo "<td>" . $row['user_country'] . "</td>";
        echo "<td>" . $keyvalue[$row['user_country']] . "</td>";
  }
  echo "</table>";