Anonymous
Сопоставление массива и добавление значений в первый массив
Сообщение
Anonymous » 03 янв 2025, 22:01
У меня есть два массива: один с конверсией_оффера_ид, конверсиями и выплатами. Теперь я хочу сопоставить его с другим массивом и добавить все значения первого массива во второй массив, а если нет, то добавить значения конверсии и выплаты как 0.
Массив 1 ($конверсий)
Код: Выделить всё
[
{
"conversion_offer_id": 90,
"conversions": 15,
"payout": 225
},
{
"conversion_offer_id": 196,
"conversions": 1,
"payout": 120
},
{
"conversion_offer_id": 720,
"conversions": 53,
"payout": 1590
}
]
Массив 2 ($clkcs)
Код: Выделить всё
[
{
"clicks": 142,
"offer_currency": 45,
"click_offer_id": 90,
"click_affiliate_id": 9106,
"offer_name": "BKS",
"offer_id": 90,
"currency_symbol": "₹"
},
{
"clicks": 8,
"offer_currency": 45,
"click_offer_id": 196,
"click_affiliate_id": 9106,
"offer_name": "FFU",
"offer_id": 196,
"currency_symbol": "₹"
},
{
"clicks": 1,
"offer_currency": 45,
"click_offer_id": 246,
"click_affiliate_id": 9106,
"offer_name": "GFT",
"offer_id": 246,
"currency_symbol": "₹"
},
{
"clicks": 1,
"offer_currency": 45,
"click_offer_id": 334,
"click_affiliate_id": 9106,
"offer_name": "JPR",
"offer_id": 334,
"currency_symbol": "₹"
},
{
"clicks": 1,
"offer_currency": 45,
"click_offer_id": 622,
"click_affiliate_id": 9106,
"offer_name": "TWS",
"offer_id": 622,
"currency_symbol": "₹"
},
{
"clicks": 1197,
"offer_currency": 45,
"click_offer_id": 720,
"click_affiliate_id": 9106,
"offer_name": "KPS",
"offer_id": 720,
"currency_symbol": "₹"
}
]
Моя логика достижения
Код: Выделить всё
foreach($clkcs as $k=>$key){
foreach($conversions as $ckey){
if($key['click_offer_id']==$ckey['conversion_offer_id']){
$clkcs[$k]['offer_id']=$ckey['conversion_offer_id'];
$clkcs[$k]['conversions']=$ckey['conversions'];
$clkcs[$k]['payout']=$ckey['payout'];
}else{
$clkcs[$k]['conversions']='0';
$clkcs[$k]['payout']='0';
}
}
}
Конверсии и выплаты только за последние соответствующие значения заполняются нормально. Для остальных это 0.
Но необходимо также добавить конверсию и выплату для идентификаторов предложения 90 и 196.
Что я делаю не так?
Подробнее здесь:
https://stackoverflow.com/questions/446 ... irst-array
1735930875
Anonymous
У меня есть два массива: один с конверсией_оффера_ид, конверсиями и выплатами. Теперь я хочу сопоставить его с другим массивом и добавить все значения первого массива во второй массив, а если нет, то добавить значения конверсии и выплаты как 0. Массив 1 ($конверсий) [code][ { "conversion_offer_id": 90, "conversions": 15, "payout": 225 }, { "conversion_offer_id": 196, "conversions": 1, "payout": 120 }, { "conversion_offer_id": 720, "conversions": 53, "payout": 1590 } ] [/code] Массив 2 ($clkcs) [code][ { "clicks": 142, "offer_currency": 45, "click_offer_id": 90, "click_affiliate_id": 9106, "offer_name": "BKS", "offer_id": 90, "currency_symbol": "₹" }, { "clicks": 8, "offer_currency": 45, "click_offer_id": 196, "click_affiliate_id": 9106, "offer_name": "FFU", "offer_id": 196, "currency_symbol": "₹" }, { "clicks": 1, "offer_currency": 45, "click_offer_id": 246, "click_affiliate_id": 9106, "offer_name": "GFT", "offer_id": 246, "currency_symbol": "₹" }, { "clicks": 1, "offer_currency": 45, "click_offer_id": 334, "click_affiliate_id": 9106, "offer_name": "JPR", "offer_id": 334, "currency_symbol": "₹" }, { "clicks": 1, "offer_currency": 45, "click_offer_id": 622, "click_affiliate_id": 9106, "offer_name": "TWS", "offer_id": 622, "currency_symbol": "₹" }, { "clicks": 1197, "offer_currency": 45, "click_offer_id": 720, "click_affiliate_id": 9106, "offer_name": "KPS", "offer_id": 720, "currency_symbol": "₹" } ] [/code] Моя логика достижения [code]foreach($clkcs as $k=>$key){ foreach($conversions as $ckey){ if($key['click_offer_id']==$ckey['conversion_offer_id']){ $clkcs[$k]['offer_id']=$ckey['conversion_offer_id']; $clkcs[$k]['conversions']=$ckey['conversions']; $clkcs[$k]['payout']=$ckey['payout']; }else{ $clkcs[$k]['conversions']='0'; $clkcs[$k]['payout']='0'; } } } [/code] Конверсии и выплаты только за последние соответствующие значения заполняются нормально. Для остальных это 0. Но необходимо также добавить конверсию и выплату для идентификаторов предложения 90 и 196. Что я делаю не так? Подробнее здесь: [url]https://stackoverflow.com/questions/44683666/array-match-add-values-to-first-array[/url]