Распарсить JSON PHP. Не работает!
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
никак не могу понять где ошибка, вроде код верный, но некоторые элементы json просто не считываются.
Есть данные
"included": [ { "id": "31259521", "type": "vacancyDetailInfo", "attributes": { "duties": "Увеличивать объемы продаж;\nНарабатывать клиентскую базу, привлекать новых клиентов - крупных застройщиков.\nКомплектовать строительные объекты ассортиментом компании;\nПостоянно общаться со своими клиентами;\nЗаключать договора, контролировать дебиторскую задолженность.", "requirements": "Умение грамотно вести переговоры с потенциальным клиентом и продавать;\nОпыт наработки клиентской базы;\nЗнание документооборота, первичной бухгалтерской документации;\nСпособность работать с большим объемом информации по товару;\nГотовность к разъездной работе по городу- до 30 % рабочего времени;\nОБЯЗАТЕЛЬНО наличие автомобиля.", "conditions": "Трудоустройство по ТК;\nВозможность зарабатывать высокий доход: оклад +% от продаж;\nКомпенсация ГСМ и мобильной связи;\nОбучение по ассортименту компании в процессе работы;\nГрафик работы: понедельник-пятница с 9.00 до 18.00;\nМолодой и современный коллектив, интересные, пользующиеся спросом продукты.\nнапротив маг. \"Малыш\"", "archivedAt": "2019-01-21T12:32:55+03:00", "isCommercial": true, "isResumeRequired": true, "isRemoteWork": false, "externalResponseUrl": "" }, "relationships": { } }, { "id": "31259521", "type": "vacancyMainInfo", "attributes": { "profession": "Менеджер по развитию продаж на строительные объекты", "createdAt": "2019-02-14T17:45:32+03:00", "updatedAt": "2019-03-04T17:45:32+03:00", "minSalary": 0, "maxSalary": 0, "highlight": true }, "relationships": { } },
пытаюсь их структурировать в один массив взяв только нужные элементы.
$obj = json_decode($data,true); $mas=array(); for ($i = 0; $i <count($obj['included']); $i++) { if ($obj['included'][$i]['type']='vacancyDetailInfo'){ $id=$obj['included'][$i]['id']; $mas[$id]['duties']= $obj['included'][$i]['attributes']['duties']; $mas[$id]['requirements']= $obj['included'][$i]['attributes']['requirements']; $mas[$id]['conditions']= $obj['included'][$i]['attributes']['conditions']; } if ($obj['included'][$i]['type']='vacancyMainInfo'){ $id=$obj['included'][$i]['id']; $mas[$id]['profession']= $obj['included'][$i]['attributes']['profession']; $mas[$id]['minSalary']= $obj['included'][$i]['attributes']['minSalary']; $mas[$id]['maxSalary']= $obj['included'][$i]['attributes']['maxSalary']; } } print_r ($mas);
в итоге получаю массив такого вида
Array ( [31259521] => Array ( [duties] => [requirements] => [conditions] => [profession] => Менеджер по развитию продаж на строительные объекты [minSalary] => 0 [maxSalary] => 0 ) [31780640] => Array ( [duties] => [requirements] => [conditions] => [profession] => Энергетик, специалист по охране труда и промышленной безопасности [minSalary] => 40000 [maxSalary] => 0 )
почему к duties, requirements, conditions не считывается, точнее в массив не добавляется? а если обратится так
echo $obj[’included’][0][’attributes’][’duties’];
то его содержимое нормально отображается?
15 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів