У меня есть следующая проблема, которая кажется распространенной, но я не могу понять, какая функция массива могла бы работать для следующего формата:
(уже пробовали array_merge
, array_merge_recursive
, array_combine
, array_splice
но работает не так, как ожидалось.)
Array
(
[0] => Array
(
[r_id] => 11
[r_sid] => RC
[d_id] => 2
)
[1] => Array
(
[r_id] => 7
[r_sid] => RC
[c_id] => 51
)
[2] => Array
(
[r_id] => 6
[r_sid] => JN
[c_id] => 52
)
[3] => Array
(
[r_id] => 7
[r_sid] => JN
[c_id] => 51
)
[4] => Array
(
[r_id] => 7
[r_sid] => LG
[c_id] => 51
)
[5] => Array
(
[r_id] => 7
[r_sid] => BN
[c_id] => 51
)
[6] => Array
(
[r_id] => 6
[r_sid] => IVS
[c_id] => 52
)
[7] => Array
(
[r_id] => 7
[r_sid] => IVS
[c_id] => 51
)
)
Теперь мне нужно объединить значения этого массива общими r_sid
& c_id
ключами; Единственный особый сценарий - если вместо c_id
есть ключ d_id
, то мы объединяем / объединяем его с любым значением в массиве, имеющим аналогичный r_sid
.
Окончательное решение должно выглядеть следующим образом, если это легче понять:
Array
(
[0] => Array
(
[r_id] => 11,7
[r_sid] => RC
[d_id] => 2
[c_id] => 51
)
[1] => Array
(
[r_id] => 6,7
[r_sid] => JN, IVS
[c_id] => 52,51
)
)
Значения r_sid
, которые не соответствуют никому, необходимо отбросить.
Любая помощь приветствуется. Большое спасибо!