Не работает foreach массив SOAP [PHP]

217
06 ноября 2018, 04:50

Есть массив, полученный с 1С при помощи SOAP.

Полный код $result:

{ "price": [ { "GroupName": "Богдан А069, А201", "id": "000000723", "Artikul": "55300-5A000", "Naimenovaniye": "Амортизатор задний Богдан А069", "Proizvoditel": "Корея", "InternetTsena": 1199, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000693", "Artikul": "54300-5A300", "Naimenovaniye": "Амортизатор передний Богдан А069", "Proizvoditel": "Корея", "InternetTsena": 892, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000827", "Artikul": "5531145001", "Naimenovaniye": "Втулка амортизатора конус HD65\/78", "Proizvoditel": "MOBIS", "InternetTsena": 42, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000828", "Artikul": "54311-44000", "Naimenovaniye": "Втулка амортизатора шток HD65\/78", "Proizvoditel": "MOBIS", "InternetTsena": 42, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000215", "Artikul": "54149-5A000", "Naimenovaniye": "Втулка рессоры (металл) HYUNDAI HD65,72,78,Богдан А069", "Proizvoditel": "Корея", "InternetTsena": 57, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000257", "Artikul": "54148-5A300", "Naimenovaniye": "Втулка рессоры (половинка) Богдан А069 резино-металлическая", "Proizvoditel": "Украина", "InternetTsena": 75, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000174", "Artikul": "54146-5A300", "Naimenovaniye": "Втулка рессоры (половинка) Богдан А069 резиновая", "Proizvoditel": "PMC", "InternetTsena": 20, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000046", "Artikul": "55772-5A000", "Naimenovaniye": "Втулка стабилизатора Богдан А069 заднего боковая", "Proizvoditel": "Украина", "InternetTsena": 15, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000025", "Artikul": "557885A000", "Naimenovaniye": "Втулка стабилизатора заднего Богдан А069", "Proizvoditel": "Украина", "InternetTsena": 20, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000878", "Artikul": "54775-5H950", "Naimenovaniye": "Втулка стабилизатора переднего Богдан А069", "Proizvoditel": "MOBIS", "InternetTsena": 98, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000888", "Artikul": "55783-5A300", "Naimenovaniye": "Втулка стойки стабилизатора заднего Богдан А069", "Proizvoditel": "MOBIS", "InternetTsena": 195, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000845", "Artikul": "54783-5A300", "Naimenovaniye": "Втулка стойки стабилизатора переднего Богдан А069", "Proizvoditel": "MOBIS", "InternetTsena": 231, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000001109", "Artikul": "", "Naimenovaniye": "Гайка стремянки передней (М14х1,5)", "Proizvoditel": "Россия", "InternetTsena": 28, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000641", "Artikul": "41100-5H100", "Naimenovaniye": "Диск сцепления Богдан А069 (дв. D4AL)", "Proizvoditel": "VALEO", "InternetTsena": 1673, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000892", "Artikul": "RSW1\/4", "Naimenovaniye": "Дроссель-глушитель (регулятор открывания двери) Богдан А069", "Proizvoditel": "CAMOZZI", "InternetTsena": 127, "ostatok": "1" }, { "GroupName": "Богдан А069, А201", "id": "000000639", "Artikul": "59822-45A00", "Naimenovaniye": "Колодка стояночного тормоза (к-т) Богдан А069", "Proizvoditel": "MOBIS", "InternetTsena": 725, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000668", "Artikul": "41200-5H200", "Naimenovaniye": "Корзина сцепления Богдан А069", "Proizvoditel": "SECO", "InternetTsena": 2510, "ostatok": "0" }, { "GroupName": "Богдан А069, А201", "id": "000000507", "Artikul": "49150-45220", "Naimenovaniye": "Крестовина кардана Богдан А069", "Proizvoditel": "GMB", "InternetTsena": 697, "ostatok": "0" }

Хочу разбить массив при помощи функции foreach:

foreach($result->price as $item=>$value) {
    echo $value;
}

Но выводит ошибку:

Notice: Undefined property: stdClass::$price in **** on line 13
Warning: Invalid argument supplied for foreach() in *** on line 13

Функция вызова SOAP результата:

$client = new SoapClient('URL?wsdl', array('location' => "URL"));    
$result = $client->GetPrice();
Answer 1

Это не массив, а json. Сначала сделайте:

$result = $client->GetPrice(); 
$data = json_decode($result['return'], true);
foreach ($data['price'] as $item => $value) {
    echo $value;
}
Answer 2

Решил вопрос.

$result = $client->GetPrice(); 
$aa = json_decode($result->return);
foreach ($aa->price as $item) {
    print_r($item);
}
READ ALSO
Не работает выход из цикла с запросами

Не работает выход из цикла с запросами

У меня есть цикл, из которого нужно выйти при изменение информации в базе, это не получается

195
GET запрос через PHP внутри SuiteCRM

GET запрос через PHP внутри SuiteCRM

Я написал viewphp который принимал ajax запросы и работал с БД но в итоге появились рад проблем из за которых пришлось отказаться от ajax и посылать...

220
Не могу заменить кусок кода с str_replace

Не могу заменить кусок кода с str_replace

Хотел удалить определенный кусок кода в php-файле, решил сделать это с str_replace()Таким образом:

166