Ir para o conteúdo
tibi

Remover duplicados em variáveis

Mensagens Recomendadas

tibi

Boa tarde. :)

Tenho a seguinte função em laravel que chamo numa view através de json:

$returndestinos = $toursdb->table('V_CATALOGOS')
 ->groupBy('DESTINOS')
 ->where('TIPOSDEVIAGEM', 'LIKE', '%'.Input::get('tipodeviagem').'%')
 ->get(array('DESTINOS'));

if(count($returndestinos) > 0){  
 foreach($returndestinos as $r)
 {
  $structure[] =  Array(
  'titulo' => $toursdb->table('V_DESTINOS')->groupBy('TITLE')->where('ID','=',$r->DESTINOS)->first(array('TITLE')) //'titulo' =>
 );
 }  
}

return $structure; 

No url, retorna me isto: [{"":{"TITLE":"Europa"}},{"":{"TITLE":"Europa"}},{"":{"TITLE":"Am\u00e9rica do Sul"}}]

Estou com dificuldades em remover os duplicados, neste caso, Europa! Já tentei usar o array_unique, mas não tenho tido sucesso, não funciona.

Alguma sugestão? Também já tentei na view quando chamo o json no javascript mas também sem sucesso :(

function updatedestinos( opt ) {
  $.getJSON('/ajax/get_destinos.json', { tipodeviagem: opt },
  function(data){
    if( ! data) return;

    $('#inputdestino').html('<option value="NaN">Destinos</option>');
    $.each(data, function(i, destino) {
      
      $('#inputdestino').append('<option>'+ destino.titulo['TITLE'] +'</option>');
    });
  })
}

Desde já, obrigado ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

As funções array_walk e array_filter permitem iterar um array e aplicar uma função a cada um dos elementos. Podes usar o array_walk para aplicar uma função que verifique se o elemento é duplicado... ou iteras o array com um foreach e fazes a mesma coisa :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tibi

Vou ler sobre essas funções mas terei que alterar um pouco a estrutura em cima...  Vou tentar.
O melhor será fazer isso dentro do ciclo foreach?

Obrigado pela resposta. ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Um foreach ou um array_walk vai dar à mesma coisa, os dois iteram o array, o foreach talvez seja mais rápido por não chamar uma segunda função por cada elemento, como no caso do array_walk, mas o resultado é o mesmo. Iteras o array e colocas num array auxiliar os elementos únicos, de acordo com o teu código de comparação.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
chbcl

Ou então estruturas uma base de dados onde, visto não serem necessários valores duplicados, os mesmos não se duplicam.


developer @ filipealves.net

filipealvesbcl [a] gmail.com

github.com/filipealvesbcl

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.