Como inserir array multidimensional dinâmico no banco de dados com mysqli

Eu tenho a seguinte matriz:

Array
(
    [step1] => 3
    [step2] => Array
        (
            [1] => Array
                (
                    [type] => 2
                    [price] => 312.5
                )

            [0] => Array
                (
                    [type] => 1
                    [price] => 51.5
                )

        )

    [step3] => Array
        (
            [first_name] => Test
            [last_name] => Test
        )

    [step4] => Some answer
)

Que eu gostaria de inserir em um banco de dados. A Etapa 2 pode ter quantos itens o usuário desejar. Como você deve ter notado, existem diferenças entre as duas matrizes da etapa 2. Além disso, a etapa 3 pode ter mais alguns campos. Isso tudo depende do usuário.

O motivo é dinâmico, porque um usuário pode gerenciar campos de entrada de formulário em um painel.

Tentei fazer um loop foreach para cada etapa a inserir, mas isso não funcionou muito bem. O que eu gostaria de fazer é o seguinte: Ter uma consulta dinâmica para que cada campo possa ser inserido no banco de dados. Eu acho que a maneira mais fácil de fazer isso é fazer um loop foreach na etapa 2 para que cada item tenha os outros valores também. Minha pergunta é como posso inserir todos os dados dessa matriz multidimensional em um banco de dados com mysqli (OOP).

Também verifiquei algumas outras perguntas como esta:Inserindo dados no MySQL a partir de uma matriz multidimensional em php, insira várias linhas através de uma matriz php no mysql, insira o array php no mysql Mas isso não me ajuda. assimimplode() não vai me ajudar. A serialização também não funcionará, pois cada campo tem seu próprio campo no banco de dados. (Quando um usuário edita o formulário nos campos do painel no banco de dados também é alterado)

desde já, obrigado