0

我正在使用json_encode将 PHP 数组转换为 json,它似乎工作正常,除了一件事。

如果我有一个这样的多维数组:

$person = array(
  'name' => 'John Smith',
  'age' => 36,
  'siblings' => array(
    'male' => array('John Doe','Mark'),
    'female' => array('Jane Doe','Jane Smith')
  )
);

我希望它把括号放在周围,siblings但它只在maleand周围做female,即:

{
  "name":"John Smith",
  "age":36,
  "siblings":{
    "male":[
      "John Doe",
      "Mark"
    ],
    "female":[
      "Jane Doe",
      "Jane Smith"
    ]
  }
}

而且我要"siblings":[{ ... }]

这可能吗?

4

3 回答 3

4
$person = array(
  'name' => 'John Smith',
  'age' => 36,
  'siblings' => array(array(
    'male' => array('John Doe','Mark'),
    'female' => array('Jane Doe','Jane Smith')
  ))
);

这将给出你想要的,但它没有多大意义

于 2012-11-05T00:25:18.553 回答
2

JavaScript 不支持关联数组,因此关联数组被转换为对象。

但是您可以像遍历数组一样遍历对象。

var i, j;
for (i in siblings) {
   for (j = 0; j < i.length; i++) {
       i[j];
   }
}
于 2012-11-05T00:25:07.663 回答
0

你可以这样做:

$person = array(
  'name' => 'John Smith',
  'age' => 36,
  'siblings' => array(
    array(
      'gender' => 'male',
      'name' => 'John Doe',
    ),
    array(
      'gender' => 'male',
      'name' => 'Mark',
    ),
    array(
      'gender' => 'female',
      'name' => 'Jane Doe',
    ),
    array(
      'gender' => 'female',
      'name' => 'Jane Smith',
    ),
  )
);
于 2012-11-05T00:29:10.240 回答