Jump to content


Photo

Comparar 2 Arrays


  • Faça o login para participar
4 replies to this topic

#1 Parenti

Parenti

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Masculino
  • Localidade:Cascavel-Pr

Posted 30/07/2010, 21:59

Olá pessoal, estou tentando "setar" o valor da primeira linha e percorrer todas as linhas do 2 foreach, se existir igual mostrar senão, pegar o próximo valor, fazer asssim até testar todos.

pegar o valor $arrayUrl[] = "escola";

e testar se existe na $array2Url[]

if( $url == $url2){
echo "$url";
}

O problema é que no script abaixo retorna muitas vezes o Carla, joana, marcos e não 1 vez cada.


<?php

$arrayUrl[] = "escola";
$arrayUrl[] = "marcos";
$arrayUrl[] = "pereira";
$arrayUrl[] = "Carla";
$arrayUrl[] = "maria";
$arrayUrl[] = "joana";

foreach( $arrayUrl as $url ){

$array2Url[] = "Carla";
$array2Url[] = "joana";
$array2Url[] = "marcos";

foreach( $array2Url as $url2 ){
if( $url2 == $url ){
echo "$url2 \n";
}
}
}
?>

Se alguém puder me ajudar!!!
Desde já, agradeço!!

#2 Ghoul

Ghoul

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 30/07/2010, 22:08

eu faria assim...


reset($arrayUrl);
reset($arrayUrl2);

while($arrayUrl){
if(in_array(current($arrayUrl),$arrayURL2))
echo current($arrayUrl);

next($arrayURL);
}

Edição feita por: Ghoul, 30/07/2010, 22:09.


#3 Parenti

Parenti

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Masculino
  • Localidade:Cascavel-Pr

Posted 31/07/2010, 09:24

Olá Ghoul!
Obrigado pela ajuda, só preciso de mais uma, como faço para passar as PALAVRAS que vou fazer a comparação?

#4 Ghoul

Ghoul

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 02/08/2010, 10:35

Você quer comprarar uma array com outra? ou você quer comparar palavras com os dois arrays?

#5 Parenti

Parenti

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Masculino
  • Localidade:Cascavel-Pr

Posted 02/08/2010, 10:48

Então, consegui quase achar o que eu precisava:
<?php

function in_iarray($str, $a){
foreach($a as $v){
if(strcasecmp($str, $v)==0){return true;}
}
return false;
}

function array_iunique($a){
$n = array();
foreach($a as $k=>$v){
if(!in_iarray($v, $n)){$n[$k]=$v;}
}
return $n;
}

$input = array( "Baby", "Lemon", "BABY", "One", "baby", "One", "one");

$result = array_iunique($input);


  foreach($result as $valor){
    echo $valor . "\n";
  }

?>

Que nesse caso retorna:

Baby Lemon One

Preciso que ele retorne somente os elementos duplicados da array, no caso ele não pode aparecer o Lemon.

Se alguém puder ajudar, agradeço!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq