Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Didi3D

Juntar arrays !

Recommended Posts

Olá rapaziada sempre uso o fórum pra me salvar mas hoje não achei uma boa solução pro meu probleminha é o seguinte possuo o seuinte array

Array
(
    [datas] => Array
        (
            [0] =>  terça-feira, 29 de abril de 2014 
        )

    [topicos] => Array
        (
            [1] =>   ESTAGIÁRIO EM DIREITO 
            [3] =>   Técnico de Suporte INFORMATICA Junior 
            [5] =>   ENCARREGADO(A) DE LOJA- NITERÓI 
        )

    [urls] => Array
        (
            [1] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-estagiario-em-direito_29.html
            [3] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-tecnico-de-suporte-informatica_29.html
            [5] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-encarregadoa-de-loja-niteroi_29.html
        )

)

e uso uma função que achei aqui mesmo no fórum pra junta-las como eu queria:

$data    = $dados['datas'];
$topicos = $dados['topicos'];
$urls    = $dados['urls'];
  
function junta_arrays($topicos, $urls, $data)
{
    return array(
      'topicos' => $topicos,
      'urls' => $urls,
      'data' => $data
    );
}   
$res = array_map("junta_arrays", $dados['topicos'], $dados['urls'], $dados['datas']);
echo "<pre>";
print_r($res);
echo "<pre>";

Fica show porém a data como só possui 1 índice ela só vai para o primeiro item do array os outos ficam sem essa informação:

Array
(
    [0] => Array
        (
            [topicos] =>   ESTAGIÁRIO EM DIREITO 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-estagiario-em-direito_29.html
            [data] =>  terça-feira, 29 de abril de 2014 
        )

    [1] => Array
        (
            [topicos] =>   Técnico de Suporte INFORMATICA Junior 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-tecnico-de-suporte-informatica_29.html
            [data] => 
        )

    [2] => Array
        (
            [topicos] =>   ENCARREGADO(A) DE LOJA- NITERÓI 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-encarregadoa-de-loja-niteroi_29.html
            [data] => 
        )
)

então queria uma ajudinha de como replicar a data para os outros itens desse terceiro array

 

desde já obrigado por quem pode ajudar :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos muito obrigado mas...

 

Acho que não estou sabendo usar corretamente...

$topicos = $dados['topicos'];
$urls    = $dados['urls'];
$data = array_fill( 0,3,$dados['datas'] );
  
function junta_arrays($topicos, $urls, $data)
{
    return array(
      'topicos' => $topicos,
      'urls' => $urls,
      'data' => $data
    );
}   
$res = array_map("junta_arrays", $dados['topicos'], $dados['urls'], $data);
echo "<pre>";
print_r($res);
echo "<pre>";

mas a saída é a seguinte:

[0] => Array
        (
            [topicos] =>   RJ ASSISTENTE ADMINISTRATIVO COMERCIAL 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-rj-assistente-administrativo.html
            [data] => Array
                (
                    [0] =>  terça-feira, 29 de abril de 2014 
                )

        )

    [1] => Array
        (
            [topicos] =>   ESTAGIÁRIO EM DIREITO 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-estagiario-em-direito_29.html
            [data] => Array
                (
                    [0] =>  terça-feira, 29 de abril de 2014 
                )

        )

    [2] => Array
        (
            [topicos] =>   Técnico de Suporte INFORMATICA Junior 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-tecnico-de-suporte-informatica_29.html
            [data] => Array
                (
                    [0] =>  terça-feira, 29 de abril de 2014 
                )

Outro detalhe importante que percebi e diante de sua solução teve outro porém na linha

 

$data = array_fill( 0, 3, $dados['datas'] );

 

o 3 é referente aos resultados que dei de exemplo mas eu tenho mais mais que 3 porém não iria colocar todos senão o tópico ficaria enorme, por isso só a nível de exemplo deixei parte do resultado do aray ou seja eu poderia ter infinitas linhas e não apenas 3 como seria pra exbibir a data em n linhas de resposta ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito Carlos !!

 

só pra complementar de posse da sua solução alterei apenas o 3 por uma variavel que conta o array assim posso ter "N" possibilidades ao invés de um número limitado

$quant = count($topicos);

$data = array_fill( 0, $quant, $dados['datas'][0]);

Ae a saída ficou perfeita !!

Array
(
    [0] => Array
        (
            [topicos] =>   RJ - ASSISTENTE ADMINISTRATIVO DE VENDAS 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/lsm-rj-assistente-administrativo-de_29.html
            [data] =>  terça-feira, 29 de abril de 2014 
        )

    [1] => Array
        (
            [topicos] =>  Estágio em Hardware e Software 
            [urls] => http://vagasdesuporterj.blogspot.com.br/2014/04/re-estagio-em-hardware-e-software_29.html
            [data] =>  terça-feira, 29 de abril de 2014 
        )

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.