PHP json_encode包含数组的括号

时间:2012-11-05 00:23:23

标签: php json

我正在使用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周围添加方括号,但它只围绕malefemale,即:

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

我想要"siblings":[{ ... }]

这可能吗?

3 个答案:

答案 0 :(得分:4)

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

这将准确地给出你想要的但是没有多大意义

答案 1 :(得分:2)

JavaScript不支持assosicative数组,因此assosicative数组将转换为对象。

但你可以遍历对象,就像你可以迭代数组一样。

var i, j;
for (i in siblings) {
   for (j = 0; j < i.length; i++) {
       i[j];
   }
}

答案 2 :(得分: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',
    ),
  )
);