Jump to content
Chris Martin

Como Agrupar um array

Recommended Posts

Pessoal, tenho um Form que o usuário pode adicionar mais inputs com o mesmo name, dai eu preciso agrupar os índices.

 

Sai assim:

array(2) {
  ["nome"]=>
  array(2) {
    [0]=>
    string(4) "Fulano"
    [1]=>
    string(2) "Ciclano"
  }
  ["sobrenome"]=>
  array(2) {
    [0]=>
    string(4) "de Tal"
    [1]=>
    string(9) "da Silva"
  }
}

Preciso que saia assim

array(2) {
  [0]=>
  array(2) {
    ["nome"]=>
    string(4) "Fulano"
    ["sobrenome"]=>
	string(4) "de Tal"
    
  }
  [1]=>
  array(2) {
    ["nome"]=>
	string(2) "Ciclano"
    ["sobrenome"]=>
    string(9) "da Silva"
  }
}

Eu tentei usar o foreach mas sem sucesso, alguém tem uma ideia?

Share this post


Link to post
Share on other sites

Você tem 2 formas de corrigir isso, uma é reorganizando o form, outra é percorrendo o array do form e reorganizando a mesma, como não conheço a estrutura do seu form, vamos pela segunda solução que propus...

 

<?php
/*
 - Imagino que o array do seu form esteja com a seguinte estrutura.
*/
$_POST['form'] = array(
	'nome' => array('Fulano', 'Ciclano'),
	'sobrenome' => array('de Tal', 'da Silva')
);

$mapped = array();

/*
 Para agrupar nome e sobrenome é necessário que as 2 arrays contenham a mesma quantidade
 para não causar inconsistência na informação a ser mapeada
*/
if(count($_POST['form']['nome']) == count($_POST['form']['sobrenome'])) {

    for($i = 0; $i < count($_POST['form']['nome']); $i++){
        $push = array(
            'nome' => $_POST['form']['nome'][$i],
            'sobrenome' => $_POST['form']['sobrenome'][$i]
        );
        
        array_push($mapped, $push);
    }
    
}

/*
 Imprimindo o resultado do mapeamento
 Se quiser testar online: http://sandbox.onlinephpfunctions.com/code/883eb757b7f6d448ccaf4d21cb7f3d8f00880830
*/
var_dump($mapped);

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By djwagnersp
      Bom dia amigos, tudo bem? estou com uma duvida se alguém puder me ajudar agradeço desde já.
       
      tenha a seguinte condição:
      //array dos produtos $prod = 'agua'; $prod = 'refri'; $prod = 'cerveja'; //array das quantidades $qtd = '3'; $qtd = '2'; $qtd = '6'; Gostaria de fazer um loop o for ou foreach que imprimisse o $prod a quantidade de vezes do $qtd
      como seria possível realizar isso?
    • By dutopfave
      Galera tenho um cadastro de cliente que preenche nome e login, ai quando digita o nome, automaticamente ele preenche o login, pra agiliza, ta assim: $("#inputdonome").blur(function(){ $("#login").val($(this).val()); }); só que to com problema de nome repetido, então vou muda ao invés de preenche automático com nome, preenche com EMAIL, porém tem como preenche automático o login só q para antes de chega no '@'   ai ficaria assim:

      E-mail: contato2019@site.com.br
      Login: contato2019
    • By JenneferBarbosa
      <label>Data Inicio</label> <input type="date" name="data_inicio-incluir" id="data_inicio-incluir"> <label>Data Fim</label> <input type="date" name="data_fim-incluir" id="data_fim-incluir"> Boa tarde pessoal, estou iniciando em JS e não sei como fazer a validação de datas. Estou fazendo um sistema de aluguel de livros, então,  como consigo verificar se a data_fim não é menor que a data inicio e que a data_fim seja de 1 até 7 dias depois da data_inicio, não podendo ultrapassar. Se alguém tiver como me ajudar, ficarei muito grata.  
    • By WitchMad
      Ooi gente!
      Seguinte, estou desenvolvendo uma plataforma para advogados. Nela será consultado processos a partir do web service do PJE.
      No site do PJE me recomendou utilizar o NuSoap para consultar o web service e foi o que eu fiz.
      Segue o código da consulta
      <?php require_once 'nusoap/lib/nusoap.php'; /* Parâmetros Requisitados */ // idConsultante // senhaConsultante // numeroProcesso /* Objetos de Resposta sucesso bollean Indica se houve sucesso na consulta do processo. mensagem string Mensagem informando que o processo foi consultado com sucesso. recibo xs:base64Binary Comprovante do protocolo do processo, que contém os dados básicos do processo. */ $wsdl = "https://www.tjpe.jus.br/pje/intercomunicacao?wsdl"; $client = new nusoap_client($wsdl, 'wsdl'); if($client->getError()){ echo "Erro no construtor" . $client->getError(); exit(); } $result = $client->call('consultarProcesso', array('idConsultante'=>'CPF do Consultante', 'senhaConsultante'=>'Senha do Consultante', 'numeroProcesso'=>'Número do Processo')); echo $result['sucesso']; ?> Acontece que a página fica em branco, sem nenhum tipo de mensagem.
      Se possível gostaria de dicas se há algum erro no código, ou alguma outra ferramenta para consultar web service
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.