Matriz multidimensional – como obter valores específicos da sub-matriz

Eu tenho a seguinte estrutura de matriz:

 Array
 (
     [0] => Array
         (
             [product_option_id] => 236
             [option_id] => 14
             [nome] => Masura S
             [tipo] => selecione
             [option_value] => Array
                 (
                     [0] => Array
                         (
                             [product_option_value_id] => 33
                             [option_value_id] => 53
                             [nome] => Alb
                             [preço] => 
                             [price_prefix] => +
                         )

                     [1] => Array
                         (
                             [product_option_value_id] => 35
                             [option_value_id] => 55
                             [nome] => Rosu
                             [preço] => 
                             [price_prefix] => +
                         )

                 )

             [obrigatório] => 0
         )

     [1] => Array
         (
             [product_option_id] => 237
             [option_id] => 15
             [nome] => Masura M
             [tipo] => selecione
             [option_value] => Array
                 (
                     [0] => Array
                         (
                             [product_option_value_id] => 34
                             [option_value_id] => 58
                             [nome] => Rosu
                             [preço] => 
                             [price_prefix] => +
                         )

                 )

             [obrigatório] => 0
         )
 )

Eu me perdi na tentativa de exibir todos os valores [nome] desta matriz.

O que eu estou tentando fazer é preencher um formulário com o menu suspenso seleciona com base no primeiro nível [name] (como [name] => Masura S ) e, em seguida, um segundo menu suspenso selecione com o segundo nível [name] (como [name] => Alb ).

Eu apreciaria se você tem alguma ponteira …

Você pode preencher o primeiro selecionar desta maneira:

  

2º selecione:

  

Eu separaria os nomes para arrumar arrays como este, depois disso deveria ser fácil preencher os menus suspensos conforme necessário:

 $product_names = $option_names = array(); foreach ($products as $index => $product) { $product_names[$index] = $product['name']; foreach ($product['option_value'] as $option) { $option_names[$index][] = $option['name']; } } 

Quando você quer o nome do produto para o índice de matriz 0, você usaria $ product_names [0] (uma string) e os nomes das opções para esse produto poderiam ser encontrados a partir de $ option_names [0] (uma matriz).

O código acima não se preocupa com IDs existentes, então, se você precisar deles para o formulário, você precisaria expandir o código um pouco mais.

Você precisará usar uma function recursiva
aqui é um exemplo

 function recursion($array) { foreach ($array as $key => $value) { echo $value; if (is_array($value)) $this->recursion($value); } } recursion($array); 

Tente isso:

 $name = array_column($array, 'name');