2015-11-12 3 views
0

Я следующий объект JSONПреобразование JSON объект к югу от объекта

[{ "item":"foo", "category_id":1 },{ "item":"bar", "category_id": 2},{ "item":"bar", "category_id":3}] 

необходимо преобразовать следующим образом:

[{ "item":"foo", "category_id":1 },{ "item":"bar", "related": { "category_id": [2, 3] }}] 

Я пишу функцию PHP, как

$previous = []; 
$category = []; 
$result = []; 


foreach ($jsonData as $element) { 

    if (in_array($element['item'], $previous)) { 
     $category[] = $element['category_id']; 
     $result[] = $category; 
    } else { 
     $previous[] = $element['item']; 
     $result[] = $element; 
    } 
} 
echo json_encode($result); 

, который дает как

[{"item":"foo","category_id":1},{"item":"bar","category_id":2},[3]] 

, но я не могу получить JSON как дополнительный объект. Как я могу решить эту проблему?

+0

Ваш первый объект JSON неверен. У вас есть '" category_id ":}' (имя поля, но не значение). –

+0

теперь обновляется с правильным значением. – noisybuddha

ответ

0

Если ваш первый элемент массива в вашем объекте будет состоять из родительского узла, вы можете получить доступ к первому элементу, скопируйте его в новый объект и затем перебирайте следующие элементы, извлекая идентификаторы, а затем добавьте их в «category_id»: массив

Смежные вопросы