2016-03-25 7 views
-2

У меня есть многомерный массив, который выглядит следующим образом:PHP json_encode многомерный массив

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 '[email protected]' 

Могу ли я получить json_encode выход этого массива что-то вроде этого?

{"company":"eeeeee":"99","Naam":"werwerew":"1","phone":"ewrwerwer":"4","email":"[email protected]":"3","mesaj":"werewrewr":"0"} 

В настоящее время я json_encode массив и вывод таков:

{"company":{"99":"eeeeee"},"Naam":{"1":"werwerew"},"phone":{"4":"ewrwerwer"},"email":{"3":"[email protected]"},"mesaj":{"0":"werewrewr"}} 

и не то, что я хочу.

+2

Ну, это уже недействительно JSON, поэтому я бы не попытался это сделать. – Rizier123

+0

Вам нужно будет изменить структуру массива, чтобы получить ожидаемый результат. – Indrajit

+0

Ваша желаемая структура НЕ является действительной JSON. У вас нет такого предмета, как этот: «Naam»: «werwerew»: «1» ' – fusion3k

ответ

0

Результат, который вы ищите, недействителен JSON. Если ваша цель состоит в том, чтобы иметь результат, который не имеет вложенные скобки, то первый unnest ваша структура исходного массива:

// sample data 
$data = array (
    'company' => array("99" => 'eeeeee'), 
    'Naam' => array ("1" => 'werwerew'), 
    'phone' => array ("4" => 'ewrwerwer'), 
    'email' => array ("3" => '[email protected]') 
); 

// 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:[email protected]":"3"} 

Обратите внимание, что это действительный JSON, так как здесь первый двоеточие является частью имени ключа.

Если вы предпочитаете номера, чтобы не иметь двойные кавычки вокруг них, а затем удалить "" . часть из цикла, чтобы получить это:

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

$ JSON будет получить это значение:

{"company:eeeeee":99,"Naam:werwerew":1,"phone:ewrwerwer":4,"email:[email protected]":3} 
Смежные вопросы