Сопоставить определенным образом значения из нескольких массивов
Array
(
[id] => 81822690529384
[product] => 160
[conversions] => 0
[cost] => 596.9
[network] => 60575
)
Array
(
[id] => 783166468822836
[product] => 158
[conversions] => 0
[cost] => 570.5
[network] => 60575
)
Есть длинный список подобных массивов. Нужно их как-то перебрать так, чтобы в рамках одного цикла к переменной $network
добавлялись значения [id]
(как строка, через запятую), но только тех массивов, в которых значение [network]
одинаковое:
$network = '81822690529384, 81822690529384'
Количество уникальных [network] заранее известно и задается через другой массив и вынимается через:
foreach ($ids as $key_1 => $network).
Пробовал разные варианты через циклы, получилось выстреливать по одному, что в целом ок но...
$network = '81822690529384';
$network = '783166468822836';
... но смотрится как-то не очень красиво, т.к. в цикле идет вызов curl
через функцию и там уже следующие манипуляции и получается много-много запросов таких по одному [id]
. Может есть более красивый вариант реализации, в котором цикл прокручивается по количеству вариантов $network
, а не массивов в ответе?
PS: изначально поля [network]
в ответе нет, я его добавил сам в попытках что-то нашаманить, в результате время работы стало довольно ощутимым. Изначально возвращается несколько многомерных массивов (кол-во = $network
) и внутри них уже массивы с id
, product
и тд. Если тут можно как то тоже оптимизировать, было бы круто..
Вот все манипуляции над исходном ответом:
$ids = [
3 => 60575,
2 => 60352,
];
foreach ($ids as $key_1 => $network) {
$stat_rows = json_decode($hub->getRowsStat($key_1), true);
for ($k=0; count($stat_rows['rows']) > $k; $k++) {
$stat_rows['rows'][$k]['network'] = $campaign_id_network;
}
}
PPS: третью неделю изучаю php, других языков не знаю пока не пинайте плз.