Эта функция делает то, что вы хотите:
function flattenArray($arr) {
$output = [];
foreach ($arr as $key => $value) {
if (is_array($value)) {
foreach(flattenArray($value) as $flattenKey => $flattenValue) {
$output["${key}.${flattenKey}"] = $flattenValue;
}
} else {
$output[$key] = $value;
}
}
return $output;
}
Вы можете увидеть, что она работает здесь .
Причина состоит в том, что в Вашем .observe () метод, Вы передали фрагмент как владелец жизненного цикла. То, что должно было быть передано, является viewLifecycleOwner объектом фрагмента
viewModel.livedata.observe(viewLifecycleOwner, Observer {
// Do your routine here
})