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

问题描述 投票:0回答:1

我正在使用Jvector Map,因为我希望根据数据库中的国家/地区字符串找到国家/地区代码。

例如。如果数据库中的国家/地区是“澳大利亚”,它应自动将其转换为其国家/地区代码“AU”

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

我有一个与国家代码相关的国家名称数组,例如。

    $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];
}   
?>

我希望我的问题很清楚。我错过了什么以及如何解决这个特殊问题。请原谅我的代码,它可能有多个缺陷

php mysql arrays jvectormap
1个回答
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>";
© www.soinside.com 2019 - 2024. All rights reserved.