Jump to content


wellington09's Content

There have been 2 items by wellington09 (Search limited from 26/01/2019)


Ordernar por                Order  

#1022966 Transformar array em outro array

Posted by wellington09 on 20/11/2015, 11:02 in PHP

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_1campo_2campo_3campo_4, etc., eu fico grato.




#1022954 Transformar array em outro array

Posted by wellington09 on 17/11/2015, 10:44 in PHP

Alguém poderia me dar uma força em uma lógica ?

Estou com dificuldade de transformar o seguinte array

<?php
Array
(
[nome] => Array
(
[0] => João
[1] => Maria
[2] => Pedrinho
[3] => Zezinho
)

[texto] => Array
(
[0] => A
[1] => B
[2] => C
[3] => D
)

)
?>

Neste array aqui

<?php
Array
(
[nome] => João
[texto] => A
)

Array
(
[nome] => Maria
[texto] => B
)

Array
(
[nome] => Pedrinho
[texto] => C
)

Array
(
[nome] => Zezinho
[texto] => D
)
?>

Abaixo segue minha tentativa 

$contador = count($array);
$cont = 0;
$novo = array();

    foreach($array as $k1=>$v):
        $cont++;
        foreach($array[$k1] as $k2=>$v2):
            if($cont <= $contador):
                $novo[$k1] = $v2;
            endif;
        endforeach;
    endforeach;

print_r($novo);

RESULTADO FINAL

Array
(
[nome] => Zezinho
[texto] => D
)




IPB Skin By Virteq