PHP json_encode多维数组

时间:2016-03-25 09:25:47

标签: php arrays json

我有一个多维数组,如下所示:

array (size=6)
  'company' => 
    array (size=1)
      99 => string 'eeeeee'
  'Naam' => 
    array (size=1)
      1 => string 'werwerew'
  'phone' => 
    array (size=1)
      4 => string 'ewrwerwer'
  'email' => 
    array (size=1)
      3 => string 'test@test.com' 

我可以得到这个数组的json_encode输出吗?

{"company":"eeeeee":"99","Naam":"werwerew":"1","phone":"ewrwerwer":"4","email":"test@test.com":"3","mesaj":"werewrewr":"0"}

目前我对数组进行了json_encode,输出为:

{"company":{"99":"eeeeee"},"Naam":{"1":"werwerew"},"phone":{"4":"ewrwerwer"},"email":{"3":"test@test.com"},"mesaj":{"0":"werewrewr"}}

并不是我想要的。

1 个答案:

答案 0 :(得分:0)

您要查找的输出无效JSON。如果你的目标是得到一个没有嵌套大括号的结果,那么首先不需要你的源数组结构:

// sample data
$data = array (
  'company' => array("99" => 'eeeeee'),
  'Naam' => array ("1" => 'werwerew'),
  'phone' => array ("4" => 'ewrwerwer'),
  'email' =>  array ("3" => 'test@test.com')
);  

// unnest array, assuming inner level arrays only have one key/value pair:
foreach ($data as $key => $row) {
    $result[$key . ":" . current($row)] = "" . key($row);
}

// Now convert that flat array to JSON
$json = json_encode($result);

$ json 将具有此值:

{"company:eeeeee":"99","Naam:werwerew":"1","phone:ewrwerwer":"4","email:test@test.com":"3"}

请注意,这是有效的JSON,因为第一个冒号是键名的一部分。

如果您希望数字周围没有双引号,请从循环中删除"" .部分,以获取此信息:

foreach ($data as $key => $row) {
    $result[$key . ":" . current($row)] = key($row);
}
然后

$ json 将获得此值:

{"company:eeeeee":99,"Naam:werwerew":1,"phone:ewrwerwer":4,"email:test@test.com":3}