I have an array like this:
Array
(
[05049207256] => Array
(
[0] => Array
(
[ID_NUMBER] => 05049207256
[CID] => 29113082
[GROUP_ID] =>
[B_CODE] => 10152/6277
)
[1] => Array
(
[ID_NUMBER] => 05049207256
[CID] => 29093574
[GROUP_ID] =>
[B_CODE] => 10241/6244
)
)
[16992375298] => Array
(
[0] => Array
(
[ID_NUMBER] => 16992375298
[CID] => 29112537
[GROUP_ID] => 398242
[B_CODE] => 10152/6277
)
[1] => Array
(
[ID_NUMBER] => 16992375298
[CID] => 29112169
[GROUP_ID] => 398223
[B_CODE] => 10152/6276
)
)
[21871540019] => Array
(
[0] => Array
(
[ID_NUMBER] => 21871540019
[CID] => 29112605
[GROUP_ID] => 398048
[B_CODE] => 10152/6277
)
[1] => Array
(
[ID_NUMBER] => 21871540019
[CID] => 29113036
[GROUP_ID] => 398040
[B_CODE] => 10152/6277
)
[2] => Array
(
[ID_NUMBER] => 21871540019
[CID] => 29112733
[GROUP_ID] => 398039
[B_CODE] => 10152/6277
)
[3] => Array
(
[ID_NUMBER] => 21871540019
[CID] => 29110803
[GROUP_ID] => 398039
[B_CODE] => 10152/6275
)
)
[19897986583] => Array
(
[0] => Array
(
[ID_NUMBER] => 19897986583
[CID] => 29112613
[GROUP_ID] =>
[B_CODE] => 10152/6277
)
[1] => Array
(
[ID_NUMBER] => 19897986583
[CID] => 29111627
[GROUP_ID] =>
[B_CODE] => 10152/6276
)
)
[21228943839] => Array
(
[0] => Array
(
[ID_NUMBER] => 21228943839
[CID] => 29112573
[GROUP_ID] => 398250
[B_CODE] => 10152/6277
)
[1] => Array
(
[ID_NUMBER] => 21228943839
[CID] => 29111947
[GROUP_ID] => 3982505
[B_CODE] => 10152/6276
)
[2] => Array
(
[ID_NUMBER] => 21228943839
[CID] => 29111947
[GROUP_ID] =>
[B_CODE] => 10152/6276
)
)
)
I want to rearrange some stuff in it:
If array has only one subarray, regardless of 'GROUP_ID' value, delete it:
[80388889886] => Array
(
[0] => Array
(
[ID_NUMBER] => 80388889886
[CID] => 29122690
[GROUP_ID] => --> some value or empty value
[B_CODE] => 10152/6295
)
)
if array has two or more subarrays, with atleast one 'GROUP_ID' value present (if there are more than one GROUP_ID, one random GROUP_ID value is ok), take that value and assign it to all other GROUP_ID's in that subarray, regardless if there are existing or empty GROUP_ID values,
(except when array also has two or more subarrays and all GROUP_ID values in subarray are empty, leave them empty as they are):
[85225663143] => Array
(
[0] => Array
(
[ID_NUMBER] => 85225663143
[CID] => 29098209
[GROUP_ID] =>
[B_CODE] => 10241/6244
)
[1] => Array
(
[ID_NUMBER] => 85225663143
[CID] => 29122764
[GROUP_ID] => 399676
[B_CODE] => 10152/6295
)
)
to:
[85225663143] => Array
(
[0] => Array
(
[ID_NUMBER] => 85225663143
[CID] => 29098209
[GROUP_ID] => 399676
[B_CODE] => 10241/6244
)
[1] => Array
(
[ID_NUMBER] => 85225663143
[CID] => 29122764
[GROUP_ID] => 399676
[B_CODE] => 10152/6295
)
)
or:
[92723208008] => Array
(
[0] => Array
(
[ID_NUMBER] => 92723208008
[CID] => 29134479
[GROUP_ID] => 399733
[B_CODE] => 10304/6332
)
[1] => Array
(
[ID_NUMBER] => 92723208008
[CID] => 29122696
[GROUP_ID] => 399764
[B_CODE] => 10152/6295
)
[2] => Array
(
[ID_NUMBER] => 92723208008
[CID] => 2912665
[GROUP_ID] => 399777
[B_CODE] => 10152/6295
)
)
to:
[92723208008] => Array
(
[0] => Array
(
[ID_NUMBER] => 92723208008
[CID] => 29134479
[GROUP_ID] => 399733
[B_CODE] => 10304/6332
)
[1] => Array
(
[ID_NUMBER] => 92723208008
[CID] => 29122696
[GROUP_ID] => 399733
[B_CODE] => 10152/6295
)
[2] => Array
(
[ID_NUMBER] => 92723208008
[CID] => 2912665
[GROUP_ID] => 399733
[B_CODE] => 10152/6295
)
)
I've got the first issue solved, but my condition in the second part doesn't work as intended, this is my code:
foreach ($result as $key => $val) {
foreach ($val as $key1 => $val1) {
if (count(array_keys($val)) == 1) {
unset ($result[$key]);
}
if (count(array_keys($val)) >= 2 && empty($result[$key][$key1]['GROUP_ID'])) {
$assign_value = $val[0]['GROUP_ID'];
$result[$key][$key1]['GROUP_ID'] = $assign_value;
}
}
}
Any help would be appreciated. Thx