Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Ralha

[Resolvido] comparar dois arrays.

Recommended Posts

olá pessoal, tenho aqui uma duvida, que vou expor.

é o seguinte eu estou a guardar nomes num array, que depois quero os compara com outros nomes que estao guardados em outro array.

 

for($j = 0; $j <= $i; $j++){
    for($k = 0; $k <= ($i-1); $k++){
	if ( $tag[$k][$j] == $tag_write[$k][$j]){
	    echo $tag[$k][$j];
	}
    }
}

isto é o k tenho mas nao esta a resultar.. algume me pode ajudar?

cumprimentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a variável $i vale quanto ? 0 ? :S

 

nao a variavel $i tem o tamanho do array k vou comparar.

por exemplo se o array k vou compara tem 20 nomes ele vai de 0 a 20..

cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi bem seu problema, você pode usar array_diff() para criar um novo array com as diferenças entre eles.

 

Assim basta informar como primeiro argumento o array que já tem e como segundo, o novo array. À variável que você associar essa função terá o elementos que TEM NO PRIMEIRO E NÃO TEM NO SEGUNDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

melhor explicando o meu problema, o que estou a fazer é o seguinte, estou a ir buscar os valores k estao numa tabela e a guarda-los num array, depois o k eu kero fazer é apresentar esses valoes, mas se na tabela existir valores iguais nao apresentar duas vezes o mesmo valor.

 

$tag[] = array();
			  $tag_write[] = array();
			  $i = 0;
				$SQL = "SELECT tag FROM humor";
				$resultado=$connect->query($SQL);
				while($linha = $resultado->fetch_row()) {
					$tag[$i] = $linha[0]; 
					//echo $tag[$i];
					$i++;	
				}		
				//echo $i;
				
				$SQL2 = "SELECT tag FROM humor";
				$resultado2=$connect->query($SQL2);
				//while($linha2 = $resultado2->fetch_row()) {
					for($j = 0; $j <= $i; $j++){
						for($k = 0; $k <= ($i-1); $k++){
							if ( $tag[$k][$j] != $tag_write[$k][$j]){
								echo $tag[$k][$j];
								$tag_write[$k][$j] = $tag[$k][$j]; 
							}
						}
					}//echo $tag[$i];
				//}
é isto k tenho mas nao ta resultando.

cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi bem seu problema, você pode usar array_diff() para criar um novo array com as diferenças entre eles.

 

Assim basta informar como primeiro argumento o array que já tem e como segundo, o novo array. À variável que você associar essa função terá o elementos que TEM NO PRIMEIRO E NÃO TEM NO SEGUNDO.

 

nao é bem a diferença entre dois arrays.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi a ginástica que você tentou fazer pois as duas queries, $SQL e $SQL2 são iguais.

 

Elas invariavelmente vão retornam a mesma matriz com as mesmas informações.

 

Mas, pelo que pra entender você tem um sistema de piadas e busca as tagse e não quer que se dupliquem. Para isso você tem duas saídas: Usar a cláusula MySQL DISTINCT para que o próprio banco de dados elimine as duplicidades, retornando uma matriz pronta para uso.

 

Ou fazer manualmente, com PHP, usando array_unique().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi a ginástica que você tentou fazer pois as duas queries, $SQL e $SQL2 são iguais.

 

Elas invariavelmente vão retornam a mesma matriz com as mesmas informações.

 

Mas, pelo que pra entender você tem um sistema de piadas e busca as tagse e não quer que se dupliquem. Para isso você tem duas saídas: Usar a cláusula MySQL DISTINCT para que o próprio banco de dados elimine as duplicidades, retornando uma matriz pronta para uso.

 

Ou fazer manualmente, com PHP, usando array_unique().

 

nao isso até ja nao estava a usar, com o array_unique() axo k resolve vou dar uma olhada na decomentação, mas nao sei bem como usar isto.

brigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem resolvi da seguinte maneira... muito mais simples, estava a dar um nó no meu Cérebro lol

 

<?php
					  require_once('../connectDB.php');
						$SQL = "SELECT DISTINCT tag FROM humor";
						$resultado=$connect->query($SQL);
						while($linha = $resultado->fetch_row()) {
							echo $linha[0];
							echo '<option value="'. $linha[0].'" selected="selected">'. $linha[0].'</option>';
						}						
			  ?>
Obrigado

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.