Php 根据国家选择在JSON文件的下拉列表中添加所有状态

Php 根据国家选择在JSON文件的下拉列表中添加所有状态,php,arrays,json,Php,Arrays,Json,我在JSON文件中列出了国家及其州,下面是它的样子 "NO": { "name": "Norway", "states": { "VA": { "name": "Vest-Agder" }, "RO": { "name": "Rogaland" }, "HO": { "name": "Hordaland" }, "SF": { "name": "Sogn og Fjordane" }, "MR": { "name": "

我在JSON文件中列出了国家及其州,下面是它的样子

"NO": {
"name": "Norway",
"states": {
  "VA": {
    "name": "Vest-Agder"
  },
  "RO": {
    "name": "Rogaland"
  },
  "HO": {
    "name": "Hordaland"
  },
  "SF": {
    "name": "Sogn og Fjordane"
  },
  "MR": {
    "name": "Møre og Romsdal"
  },
  "ST": {
    "name": "Sør-Trøndelag"
  },
  "NO": {
    "name": "Nord-Trøndelag"
  },
  "NT": {
    "name": "Nordland"
  },
  "TR": {
    "name": "Troms"
  },
  "FI": {
    "name": "Finnmark"
  },
  "SJ": {
    "name": "Svalbard"
  },
  "SJ": {
    "name": "Jan Mayen"
  },
  "AK": {
    "name": "Akershus"
  },
  "AA": {
    "name": "Aust-Agder"
  },
  "BU": {
    "name": "Buskerud"
  },
  "HE": {
    "name": "Hedmark"
  },
  "OP": {
    "name": "Oppland"
  },
  "OS": {
    "name": "Oslo"
  },
  "TE": {
    "name": "Telemark"
  },
  "VF": {
    "name": "Vestfold"
  },
  "OF": {
    "name": "Østfold"
  }
}
我想做的是根据下拉菜单中的国家选择列出州名。比如说,如果挪威被选为国家,下拉列表将包含列表中的所有州名称和值中的短名称

我创建了下面的代码,但下拉列表为空

$conobjitems = json_decode($jsonitemfile);
        echo "<select>";
$findBystatename = function($constatename) use ($conobjitems) {
        foreach($conobjitems->Norway as $short){
            echo "<option>". $short . "</option>";
        }
};
        echo "</select>";

这里需要建议。

这是我想出的正确代码

        echo "<select>";

  foreach($conobjitems->PK->states as $short => $outputstate) {
            echo "<option value=". $short . ">". $outputstate->name . "</option>";
  }
        echo "</select>";


您将findBystatename定义为一个函数,但实际上从未在任何地方调用该函数,因此您的输出可能只是@Simon谢谢,我已修复了我的代码这是我的错误: