我有一个多维数组,如下所示:
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"}}
并不是我想要的。
答案 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}