Как избежать перезаписи значений из массива в поля bitrix в методе crm.deal.update?
Я только начала изучение PHP. И у меня вопрос по методу crm.deal.update Bitrix.
Дело в том, что на этапе формирования curl запроса с методом deal.update все сделки в Bitrix заполняются одинаковым значением из $obj_response2['leadProvider']['firstName']." ".$obj_response2['leadProvider']['lastName']; в поле UF. Такое ощущение, что он перезаписывает туда крайнее значение из массива $obj_response2(пример полученных данных ниже самого кода, поля одинаковые данные разные). Подскажите , пожалуйста, как избежать перезаписи?
//----------Перебор ключей массива---------------
foreach ($result as $key => $value) {
$all = array_merge($all, $value);
}
foreach ( $all as $all_name => $all_value )
{
foreach ( $all_value as $index => $value )
{
/*echo '<pre>';
echo $value .'<br>';
echo '</pre>';*/
$ch = curl_init('https://api.maxposter.ru/partners-api/appraisals');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_USERPWD, ('***login*****:pass'));
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"filters": [{"fields": "id","type": "equal","value":" '. $value .'"}],"limit": "100","offset": "0"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$return = curl_exec($ch);
if(curl_errno($ch)){
echo 'Request Error:' . curl_error($ch);
}
curl_close($ch);
$obj_response = json_decode($return, true);
foreach ($obj_response['data'] as $k1 => $v1)
{
foreach ($v1 as $k2 => $obj_response2) {
if ($obj_response2['id'] == $value){
$queryUrl = 'https://portal.irbis-auto.ru/rest/108/*****************/crm.deal.update.json';
$qr1 = array(
'fields' => array(),
'params' => array("REGISTER_SONET_EVENT" => "N"),
'id' => $value,
);
$qr1['fields']['UF_CRM_1647518675'] = $obj_response2['leadProvider']['firstName']." ".$obj_response2['leadProvider']['lastName']; //Кто привёл
$queryData = http_build_query($qr1);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
if(!$result = curl_exec($curl))
{
$result = curl_error($curl);
}
curl_close($curl);
$result = json_decode($result, true);
}}}}
Пример блока данных сделки Maxposter из массива $obj_response2 , которых может быть очень много с разными значениями.
Array
(
[0] => Array
(
[fields] => id
[type] => equal
[value] => 1610440
)
)
Array
(
)
Array
(
[total] => 1
[limit] => 100
[offset] => 0
)
Array
(
)
Array
(
[externalId] =>
[year] => 2016
[engineType] => petrol
[engineVolume] => 1596
[enginePower] => 125
[driveType] => front
[gearboxType] => robotized
[gearboxGearCount] => 6
[bodyType] => hatchback
[bodyDoorCount] => 5
[vin] =>
[chassisNumber] =>
[bodyNumber] =>
[engineNumber] =>
[stateRegistrationNumber] =>
[bodyColor] => beige
[bodyColorMetall] =>
[loadCapacity] =>
[steeringWheel] => left
[mileage] => 92000
[mileageUnit] => km
[noRussianMileage] =>
[withoutCustoms] =>
[armored] =>
[ownerCount] => 2
[seatCount] =>
[ptsType] => original
[ptsFreeSpace] =>
[description] =>
[registrationCertificate] =>
[warrantyDate] =>
[acquisitionSource] => trade_in_new
[acquisitionDate] =>
[leadSource] => Array
(
[id] => 3
[name] => Отдел продаж новые
)
[callCenterEmployee] =>
[presalePreparationCost] =>
[leadProvider] => Array
(
[id] => 1559
[firstName] => Сергей
[lastName] => Адамович