使用PHP将值/对列表(简单数组)转换为具有属性的JSON


Convert value/pair list (simple array) into JSON with properties using PHP

我有一个简单的值对数组,如下所示:

array(4) (
  [4] => (string) Barcelona
  [3] => (string) Cordoba
  [1] => (string) Granada
  [2] => (string) Jaen
)

我需要将其编码为JSON,以以下格式响应AJAX请求:

[{"pk": 4, "name": "Barcelona"},
{"pk": 3, "name": "Cordoba"},
{"pk": 1, "name": "Granada"},
{"pk": 2, "name": "Jaen"}]

如果我使用:

json_encode($a)

我得到以下信息:

{"4":"Barcelona","3":"Cordoba","1":"Granada","2":"Jaen","0":"Select a province"}

如何让PHP格式化我的简单数组以在JSON中包含属性?

只需创建一个新数组:

$data = array();
foreach($array as $key => $value) {
    $data[] = array('pk' => $key, 'name' => $value);
}
$json = json_encode($data);