ShZlot, fiquei batendo cabeça aqui e consegui resolver o meu problema com o seguinte código abaixo.
<?php $campo_1 = 'nome'; $campo_2 = 'texto'; $contador = 0; foreach($arrayDados as $k=>$v):// Array principal $qtd = count($v); foreach($arrayDados[$k] as $k2=>$v2):// Arrays dentro do array principal if($contador < $qtd): $array_chave[$campo_1] = $arrayDados[$campo_1][$contador]; // crio um novo array $array_chave[$campo_2] = $arrayDados[$campo_2][$contador]; // crio um novo array print_r($array_chave);// monta o array do jeito que eu quero endif; $contador++; endforeach; endforeach; ?>
Fiz um laço na tag fieldset, apenas para simular um exemplo e brincar com o codigo:
<form action="" method="post" target="_blank"> <?php for($i = 0; $i < 3 ; $i++):?> <fieldset> <legend>Teste <?php echo $i;?></legend> <p> <label>Nome</label> <input name="tabelas[nome][]" type="text" /> </p> <p> <label>Texto</label> <input name="tabelas[texto][]" type="text" /> </p> </fieldset> <?php endfor;?> <input name="enviar" type="submit" value="enviar" /> </form>
Apesar do código estar funcionando e gerando o array do jeito que eu queria, eu ainda não fiquei satisfeito com o código que criei, pois caso eu tenha um novo campo dentro da tag fieldset ex:
<p> <label>Link</label> <input name="tabelas[link][]" type="url" /> </p>
Terei que acrescentar o seguinte código no PHP
$campo_3 = 'link'; $array_chave[$campo_3] = $arrayDados[$campo_3][$contador]; // crio um novo array
Se alguém puder me ajudar na logica acima, deixando ela mais dinâmica sem a necessidade de ficar acrescentando variáveis como campo_1, campo_2, campo_3, campo_4, etc., eu fico grato.