Php 如何使用PDO::FETCH_UNIQUE将json转换为正确的格式?

Php 如何使用PDO::FETCH_UNIQUE将json转换为正确的格式?,php,mysql,json,pdo,Php,Mysql,Json,Pdo,我通过pdo从mySQL数据库获取数据: $people = $db->query('SELECT * FROM people ORDER BY id ASC;')->fetchAll(PDO::FETCH_UNIQUE); 阵列人员如下所示: array(84) { [40]=> array(12) { ["name"]=>string(5) "Tiger Nixon" [0]=> string(5) "Tiger Nixon"

我通过pdo从mySQL数据库获取数据:

$people = $db->query('SELECT * FROM people ORDER BY id ASC;')->fetchAll(PDO::FETCH_UNIQUE);
阵列人员如下所示:

array(84) {
  [40]=>
  array(12) {
    ["name"]=>string(5) "Tiger Nixon"
    [0]=> string(5) "Tiger Nixon"
    ["positon"]=> string(7) "System Architect"
    [1]=> string(7) "System Architect"
    ["salary"]=> string(10) "$320,800"
    [2]=> string(10) "$320,800"
    ["start_date"]=> string(11) "2011/04/25"
    [3]=> string(11) "2011/04/25"
    ["office"]=> string(5) "Edinburgh"
    [4]=> string(5) "Edinburgh"
    ["extn"]=> string(5) "5421"
    [5]=> string(5) "5421"

  }
  [41]=>
   array(12) {
    ["name"]=> string(5) "Garrett Winters"
    [0]=> string(5) "Garrett Winters"
    ["positon"]=> string(7) "Accountant"
    [1]=> string(7) "Accountant"
    ["salary"]=> string(10) "$170,750"
    [2]=> string(10) "$170,750"
    ["start_date"]=> string(11) "2011/07/25"
    [3]=> string(11) "2011/07/25"
    ["office"]=> string(5) "Tokyo"
    [4]=> string(5) "Tokyo"
    ["extn"]=> string(5) "8422"
    [5]=> string(5) "8422"
  }
...
如果我现在通过echo json_encode$people将其转换为json

结果是:

{"40":{
    "name":"Tiger Nixon",
    "0":"Tiger Nixon",
    "position":"System Architect",
    "1":"System Architect",
    "salary":"$320,800",
    "2":"$320,800",
    "start_date":"2011/04/25",
    "3":"2011/04/25",
    "office":"Edinburgh",
    "4":"Edinburgh",
    "extn":"5421",
    "5":"5421",
   },
...
但这不是我需要的格式。实际上我需要这种格式:

[
  {
    "name": "Tiger Nixon",
    "position": "System Architect",
    "salary": "$320,800",
    "start_date": "2011/04/25",
    "office": "Edinburgh",
    "extn": "5421"
  },
  {
    "name": "Garrett Winters",
    "position": "Accountant",
    "salary": "$170,750",
    "start_date": "2011/07/25",
    "office": "Tokyo",
    "extn": "8422"
  },
...
]
然后,您应该告诉fetchAll您希望返回一个assoc数组,而不是同时返回assoc数组和数字数组

->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)

伟大的但之前还有一个数字:{40:{姓名:Tiger Nixon,职位:系统架构师,工资:$320800,开始日期:2011/04/25,办公室:爱丁堡,extn:5421}我认为最好只使用PDO::FETCH_ASSOC