Сначала объедините рекурсивные массивы со статусами и комментариями, затем склейте обе части следующим образом:
$output = array_merge_recursive($array['status'], $array['comment']);
array_walk($output, function (&$value, $key) { $value = empty($value[1]) ? $value[0] : $value[0]."-'".$value[1]."'"; });
Но это будет работать только с PHP версии 5.3 или выше. Чтобы сделать то же самое в более низкой версии PHP, вы должны сначала создать свою функцию, а затем передать ее имя:
function gluecomments(&$value, $key) { $value = empty($value[1]) ? $value[0] : $value[0]."-'".$value[1]."'"; }
$output = array_merge_recursive($array['status'], $array['comment']);
array_walk($output, 'gluecomments');
Доказательство:
Для этого ввода:
$array = array(
'status' => array(
'000046' => 'S',
'000047' => 'S',
),
'comment' => array(
'000046' => 'Flarg.',
'000047' => '',
),
'submit' => 'SUBMIT REPORT',
);
print_r($output)
напечатано следующее:
Array
(
[000046] => S-'Flarg.'
[000047] => S
)
Что, вероятно, то, что вы хотели.
EDIT:
Я удалил проверки, является ли это массивом или нет - я предполагаю, что переменная всегда находится в том формате, который вы нам дали, поэтому это не требуется.