В Postgre есть массивы-типы данных (версии массива почти всех простых типов данных). Но я бы не рекомендовал использовать их, в частности , а не в сочетании с PHP. Потому что с текущими функциями базы данных он вернет массив в виде строки. Кроме того, он как бы не соответствует назначению реляционной базы данных, где массив должен рассматриваться как количество строк в одном столбце. Ни одной строки одного столбца.
Чтобы попытаться ответить на ваш вопрос. Вы, вероятно, должны рассматривать «самый глубокий» элемент вашего многомерного массива как «строку» из базы данных. где в нескольких столбцах указан путь, по которому нужно перейти к значению.
Пример:
while($row = $result->fetch_object()) {
$multi_array[$row->base][$row->layer] = $row->value
}