Foros del Web » Programando para Internet » PHP »

Comparar valores de un array.

Estas en el tema de Comparar valores de un array. en el foro de PHP en Foros del Web. Hola amigos: Código PHP: $kkk  = array( 1 => $uno ,  2 => $dos ,  3 => $tres ,  4 => $cuatro ,  5 => $cinco ...
  #1 (permalink)  
Antiguo 09/05/2012, 06:50
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Comparar valores de un array.

Hola amigos:

Código PHP:
$kkk = array(1=>$uno2=>$dos3=>$tres4=>$cuatro5=>$cinco6=>$seis7=>$siete8=>$ocho9=>$nueve10=>$diez11=>$once12=>$doce13=>$trece14=>$catorce15=>$quince16=>$diezseis17=>$diezsiete18=>$diezocho19=>$dieznueve20=>$veinte21=>$veinteuno22=>$veintedos23=>$veintetres24=>$veintecuatro25=>$veintecinco26=>$veinteseis27=>$veintesiete28=>$veinteocho29=>$veintenueve30=>$treinta31=>$treintauno32=>$treintados33=>$treintatres34=>$treintacuatro35=>$treintacinco36=>$treintaseis37=>$treintasiete38=>$treintaocho39=>$treintanueve40=>$cuarenta41=>$cuarentauno42=>$cuarentados43=>$cuarentatres44=>$cuarentacuatro45=>$cuarentacinco46=>$cuarentaseis47=>$cuarentasiete48=>$cuarentaocho49=>$cuarentanueve50=>$cincuenta); 
En ese array necesito hacer comparaciones entre las variables. Casi todos los métodos de lectura de array q he visto no guardan en memoria los valores.

Necesito lograr lo siguiente:
Si $uno=50, $diezocho=50 y $cuarentacinco=50 eliminar del array 18=>$diezocho , 45=>$cuarentacinco y así con todos los valores repetidos. Lograr al final un array sin valores repetidos.
  #2 (permalink)  
Antiguo 09/05/2012, 07:00
 
Fecha de Ingreso: noviembre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Pues recorre el array con dos foreach y ve comparando los valores del uno y del otro, eliminando en caso de que al comparar sean iguales
  #3 (permalink)  
Antiguo 09/05/2012, 07:07
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Cita:
Iniciado por alehuelva Ver Mensaje
Pues recorre el array con dos foreach y ve comparando los valores del uno y del otro, eliminando en caso de que al comparar sean iguales

Gracias, lo voy a intentar...
  #4 (permalink)  
Antiguo 09/05/2012, 08:02
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar valores de un array.

Pero de esa forma tendrias el array con baches en las keys, si es importante que las tengas en secuencia tal vez te convenga generar un nuevo array dinamico que solo agregue las que no se repiten y luego borrar el array viejo, aviso por las dudas.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 09/05/2012, 08:26
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

A mi se me ocurrió esto y me da error en el primer if

Código PHP:
while($elemento=each($kkk))
{
while(
$compara=each($kkk)
{
if(
$elemento["key"]!=$compara["key"])
{
if(
$elemento["value"]==$compara["value"])
unset(
$compara["key"]);
}
}

No tengo idea si está bien planteado.
  #6 (permalink)  
Antiguo 09/05/2012, 08:29
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Comparar valores de un array.

Y Symfony en el titulo es por ?, de todas formas, array_unique no te sirve ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 09/05/2012, 08:40
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Cita:
Iniciado por masterpuppet Ver Mensaje
Y Symfony en el titulo es por ?, de todas formas, array_unique no te sirve ?

Saludos.
Lo de Symfony fue un error porque no sabía para qué usar los prefijos.

Pues mira q si me sirve, gracias, no conocía ese array_unique. Pero necesito resolver el problema del código anterior porque tengo q hacer la comparación para obtener otros datos de ese array.
  #8 (permalink)  
Antiguo 09/05/2012, 08:46
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Cita:
Iniciado por alex760125 Ver Mensaje
A mi se me ocurrió esto y me da error en el primer if

Código PHP:
while($elemento=each($kkk))
{
while(
$compara=each($kkk)
{
if(
$elemento["key"]!=$compara["key"])
{
if(
$elemento["value"]==$compara["value"])
unset(
$compara["key"]);
}
}

No tengo idea si está bien planteado.
Realmente primero me da error en { del segundo while y si las quito me da error en if siguiente de ese while. No tengo idea del por qué, debido a esto no he podido comprobar mi código.
  #9 (permalink)  
Antiguo 09/05/2012, 12:36
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: Comparar valores de un array.

Hola, viendo el tema no se si lo entendí bien, pero si lo que quieres hacer es tomar un array sin valores repetidos, podrias hacer esto:

ejemplo:

Código PHP:
    $uno=50;
    
$dos=50;
    
$tres=50;
    
    
//Array de 10 posiciones, donde las posiciones 1, 2 y 3 valen 50, y el resto son NULL
    
$vectorlatino = array(1=>$uno2=>$dos3=>$tres4=>$cuatro5=>$cinco6=>$seis7=>$siete8=>$ocho9=>$nueve10=>$diez);

    
//Ahora para eliminar todas las posiciones que se repiten, 
    //contando campos NULL se aria de la siguiente forma.

    
var_dump($vectorlatino);

    
/* Esto retornara todo el array.
    array(10) {
      [1]=>
      int(50)
      [2]=>
      int(50)
      [3]=>
      int(50)
      [4]=>
      NULL
      [5]=>
      NULL
      [6]=>
      NULL
      [7]=>
      NULL
      [8]=>
      NULL
      [9]=>
      NULL
      [10]=>
      NULL
    } */

    //Para sacar el array limpio seria:
    
var_dump(array_unique($vectorlatino));
    
    
/* Esto retornara:
    array(10) {
      [1]=>
      int(50)
      [4]=>
      NULL
    } */ 
Se usa la función de PHP array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) que sencillamente lo que hace es, Toma un array y devuelve un nuevo array sin valores duplicados.

Saludos, y espero que sea lo que estabas buscando...
  #10 (permalink)  
Antiguo 09/05/2012, 12:48
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Cita:
Iniciado por Vector_Latino Ver Mensaje
Hola, viendo el tema no se si lo entendí bien, pero si lo que quieres hacer es tomar un array sin valores repetidos, podrias hacer esto:

ejemplo:

Código PHP:
    $uno=50;
    
$dos=50;
    
$tres=50;
    
    
//Array de 10 posiciones, donde las posiciones 1, 2 y 3 valen 50, y el resto son NULL
    
$vectorlatino = array(1=>$uno2=>$dos3=>$tres4=>$cuatro5=>$cinco6=>$seis7=>$siete8=>$ocho9=>$nueve10=>$diez);

    
//Ahora para eliminar todas las posiciones que se repiten, 
    //contando campos NULL se aria de la siguiente forma.

    
var_dump($vectorlatino);

    
/* Esto retornara todo el array.
    array(10) {
      [1]=>
      int(50)
      [2]=>
      int(50)
      [3]=>
      int(50)
      [4]=>
      NULL
      [5]=>
      NULL
      [6]=>
      NULL
      [7]=>
      NULL
      [8]=>
      NULL
      [9]=>
      NULL
      [10]=>
      NULL
    } */

    //Para sacar el array limpio seria:
    
var_dump(array_unique($vectorlatino));
    
    
/* Esto retornara:
    array(10) {
      [1]=>
      int(50)
      [4]=>
      NULL
    } */ 
Se usa la función de PHP array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) que sencillamente lo que hace es, Toma un array y devuelve un nuevo array sin valores duplicados.

Saludos, y espero que sea lo que estabas buscando...
Gracias por tu respuesta, pero si lees bien ya lo tengo claro con array_unique. Necesito además lograr la comparación mediante otro código porque quiero obtener más información de ese array, como por ejemplo cantidad de un mismo valor q se repite. Por eso tengo hecho un script con while q no me funciona y quisiera q alguien me explicara qué está mal.
  #11 (permalink)  
Antiguo 09/05/2012, 13:47
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: Comparar valores de un array.

Hola, para contar cuantos repetidos hay puedes usar la funcion array_count_values que sera asi:

Código PHP:
var_dump(@array_count_values($vectorlatino));
//Esta función te devolverá esto, solo cuenta números y cadenas:
/*array(1) {
  [50]=>
  int(3)
}*/ 
donde array_count_values ( array $input ) Cuenta todos los valores de un array, devolviendo un nuevo array con estos valores.

Saludos
  #12 (permalink)  
Antiguo 09/05/2012, 13:57
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Código PHP:
$kkk = array(1=>$uno2=>$dos3=>$tres4=>$cuatro5=>$cinco6=>$seis7=>$siete8=>$ocho9=>$nueve10=>$diez11=>$once12=>$doce13=>$trece14=>$catorce15=>$quince16=>$diezseis17=>$diezsiete18=>$diezocho19=>$dieznueve20=>$veinte21=>$veinteuno22=>$veintedos23=>$veintetres24=>$veintecuatro25=>$veintecinco26=>$veinteseis27=>$veintesiete28=>$veinteocho29=>$veintenueve30=>$treinta31=>$treintauno32=>$treintados33=>$treintatres34=>$treintacuatro35=>$treintacinco36=>$treintaseis37=>$treintasiete38=>$treintaocho39=>$treintanueve40=>$cuarenta41=>$cuarentauno42=>$cuarentados43=>$cuarentatres44=>$cuarentacuatro45=>$cuarentacinco46=>$cuarentaseis47=>$cuarentasiete48=>$cuarentaocho49=>$cuarentanueve50=>$cincuenta);

while(
$elemento=each($kkk)) 

while(
$compara=each($kkk

if(
$elemento["key"]!=$compara["key"]) 

if(
$elemento["value"]==$compara["value"]) 
unset(
$compara["key"]); 




En este momento sólo quiero saber por qué no funciona mi código. Quiero saber si tiene sentido lo q he escrito en while.
  #13 (permalink)  
Antiguo 09/05/2012, 14:07
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar valores de un array.

Si posteas todo el codigo, te vamos a poder ayudar pero la idea de tener 50 variables es una locura, postea el valor de cada variable del $uno al $cincuenta y te podremos ayudar, pero desde el vamos ya ese codigo tiene error de sintaxis desde ya te digo, un while le falta cerrar un parentecis
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #14 (permalink)  
Antiguo 09/05/2012, 14:23
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: Comparar valores de un array.

Bueno acabo de hacer hasta una funcion que la llame vecUnique($a) que te devolvera un array con 3 posiciones:
  • La Primera es ['array'] que seria el array sin valores repetidos.
  • La Segunda es ['repetidos'] que seria el array, donde las clave es el valor que se repite y este contendrá las veces que se repitió.
  • El Tercero es ['original'] que seria el array original sin ninguna modificación.

para usar seria:

Código PHP:

    
function vecUnique($a){$vecUnique['array']=Array();$vecUnique['original']=$a;foreach($a as $b=>$c){if(!in_array($c,$vecUnique['array'])){$vecUnique['array'][$b]=$c;$vecUnique['repetidos'][$c]=1;}else{$vecUnique['repetidos'][$c]++;}}return $vecUnique;}

    
$uno=50
    
$dos=50
    
$tres=50
     
    
//Array de 10 posiciones, donde las posiciones 1, 2 y 3 valen 50, y el resto son NULL 
    
$vectorlatino = array(1=>$uno2=>$dos3=>$tres4=>$cuatro5=>$cinco6=>$seis7=>$siete8=>$ocho9=>$nueve10=>$diez); 

    
var_dump(vecUnique($vectorlatino));

    
//La funcion retornara esto:
    /*
    array(3) {
      ["array"]=>
      array(2) {
        [1]=>
        int(50)
        [4]=>
        NULL
      }
      ["original"]=>
      array(10) {
        [1]=>
        int(50)
        [2]=>
        int(50)
        [3]=>
        int(50)
        [4]=>
        NULL
        [5]=>
        NULL
        [6]=>
        NULL
        [7]=>
        NULL
        [8]=>
        NULL
        [9]=>
        NULL
        [10]=>
        NULL
      }
      ["repetidos"]=>
      array(2) {
        [50]=>
        int(3)
        [""]=>
        int(7)
      }
    }
     */ 
Saludos.
  #15 (permalink)  
Antiguo 09/05/2012, 14:33
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

$ndos= $_POST['ndos'];
$ntres= $_POST['ntres'];
$ncuatro= $_POST['ncuatro'];
$ncinco= $_POST['ncinco'];



$salida=$nuno."\t".$ndos."\t".$ntres."\t".$ncuatro ."\t".$ncinco."\t"."\n";
$fp = fopen("dprueba.txt", "a");
if(!$fp)
{
echo "<p><strong>Neca</strong></p>";
exit;
}
fwrite($fp, $salida);
fclose($fp);

$fp = fopen("dprueba.txt", "r");

$fc = fread($fp, filesize('dprueba.txt'));
$uno = substr_count($fc, "01");// acá tengo veces repetidas, parte baja del gráfico.
$dos = substr_count($fc, "02");
$tres = substr_count($fc, "03");
$cuatro = substr_count($fc, "04");
$cinco = substr_count($fc, "05");
$seis = substr_count($fc, "06");
$siete = substr_count($fc, "07");
$ocho = substr_count($fc, "08");
$nueve = substr_count($fc, "09");
$diez = substr_count($fc, "10");
$once = substr_count($fc, "11");
$doce = substr_count($fc, "12");
$trece = substr_count($fc, "13");
$catorce = substr_count($fc, "14");
$quince = substr_count($fc, "15");
$diezseis = substr_count($fc, "16");
$diezsiete = substr_count($fc, "17");
$diezocho = substr_count($fc, "18");
$dieznueve = substr_count($fc, "19");
$veinte = substr_count($fc, "20");
$veinteuno = substr_count($fc, "21");
$veintedos = substr_count($fc, "22");
$veintetres = substr_count($fc, "23");
$veintecuatro = substr_count($fc, "24");
$veintecinco = substr_count($fc, "25");
$veinteseis = substr_count($fc, "26");
$veintesiete = substr_count($fc, "27");
$veinteocho = substr_count($fc, "28");
$veintenueve = substr_count($fc, "29");
$treinta = substr_count($fc, "30");
$treintauno = substr_count($fc, "31");
$treintados = substr_count($fc, "32");
$treintatres = substr_count($fc, "33");
$treintacuatro = substr_count($fc, "34");
$treintacinco = substr_count($fc, "35");
$treintaseis = substr_count($fc, "36");
$treintasiete = substr_count($fc, "37");
$treintaocho = substr_count($fc, "38");
$treintanueve = substr_count($fc, "39");
$cuarenta = substr_count($fc, "40");
$cuarentauno = substr_count($fc, "41");
$cuarentados = substr_count($fc, "42");
$cuarentatres = substr_count($fc, "43");
$cuarentacuatro = substr_count($fc, "44");
$cuarentacinco = substr_count($fc, "45");
$cuarentaseis = substr_count($fc, "46");
$cuarentasiete = substr_count($fc, "47");
$cuarentaocho = substr_count($fc, "48");
$cuarentanueve = substr_count($fc, "49");
$cincuenta = substr_count($fc, "50");

fclose($fp);

$kkk = array(1=>$uno, 2=>$dos, 3=>$tres, 4=>$cuatro, 5=>$cinco, 6=>$seis, 7=>$siete, 8=>$ocho, 9=>$nueve, 10=>$diez, 11=>$once, 12=>$doce, 13=>$trece, 14=>$catorce, 15=>$quince, 16=>$diezseis, 17=>$diezsiete, 18=>$diezocho, 19=>$dieznueve, 20=>$veinte, 21=>$veinteuno, 22=>$veintedos, 23=>$veintetres, 24=>$veintecuatro, 25=>$veintecinco, 26=>$veinteseis, 27=>$veintesiete, 28=>$veinteocho, 29=>$veintenueve, 30=>$treinta, 31=>$treintauno, 32=>$treintados, 33=>$treintatres, 34=>$treintacuatro, 35=>$treintacinco, 36=>$treintaseis, 37=>$treintasiete, 38=>$treintaocho, 39=>$treintanueve, 40=>$cuarenta, 41=>$cuarentauno, 42=>$cuarentados, 43=>$cuarentatres, 44=>$cuarentacuatro, 45=>$cuarentacinco, 46=>$cuarentaseis, 47=>$cuarentasiete, 48=>$cuarentaocho, 49=>$cuarentanueve, 50=>$cincuenta);


while($elemento=each($kkk))
{
while($compara=each($kkk)
{
if($elemento["key"]!=$compara["key"])
{
if($elemento["value"]==$compara["value"])
unset($compara["key"]);
}
}
}


En este momento sólo quiero saber por qué no funciona mi código. Quiero saber si tiene sentido lo q he escrito en while.[/QUOTE]

Nota: Vector_latino te pido de favor q leas lo q necesito. Quiero corregir mi código.
  #16 (permalink)  
Antiguo 09/05/2012, 14:50
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar valores de un array.

La verdad es raro lo que queres hacer, pero algo parecido a lo tuyo es usar el foreach en vez del while, porque por alguna razon solo te comapara el primer valor de 1 con todos los demas:

Código PHP:
Ver original
  1. foreach ($kkk as $k1 => $v1) {
  2.     foreach ($kkk as $k2 => $v2) {
  3.         if ($k1 != $k2) {
  4.             if ($v1 == $v2) {
  5.                 unset($kkk[$k1]);
  6.             }
  7.         }
  8.     }
  9. }
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #17 (permalink)  
Antiguo 09/05/2012, 15:44
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Cita:
Iniciado por linuxzero Ver Mensaje
La verdad es raro lo que queres hacer, pero algo parecido a lo tuyo es usar el foreach en vez del while, porque por alguna razon solo te comapara el primer valor de 1 con todos los demas:

Código PHP:
Ver original
  1. foreach ($kkk as $k1 => $v1) {
  2.     foreach ($kkk as $k2 => $v2) {
  3.         if ($k1 != $k2) {
  4.             if ($v1 == $v2) {
  5.                 unset($kkk[$k1]);
  6.             }
  7.         }
  8.     }
  9. }

Tú código está bien, muchass graciass!! Una pregunta:
Por qué $k1 si ese valor es fijo para compararlo con los demás. Por qué no unset($kkk[$k2]) ??

Otra: Por qué no funciona mi código con while si es muy parecido al tuyo con foreach.

Última edición por alex760125; 09/05/2012 a las 18:33
  #18 (permalink)  
Antiguo 09/05/2012, 21:14
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar valores de un array.

cuando hace el unset($kkk[$k1]) es porque se cumplio la condicion de $k1 == $k2 por ende $k1 es igual a $k2, entonces si usas unset($kkk[$k2]) es exactamente igual ;)

y con respecto al while es porque no se recorre el while con el each de esa manera, se hace asi:

Código PHP:
Ver original
  1. while (list($clave, $valor) = each($kkk)) {
  2.       echo $clave . " => " . $valor;
  3. }

Probalo y fijate si va
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #19 (permalink)  
Antiguo 10/05/2012, 06:22
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Cita:
Iniciado por linuxzero Ver Mensaje
cuando hace el unset($kkk[$k1]) es porque se cumplio la condicion de $k1 == $k2 por ende $k1 es igual a $k2, entonces si usas unset($kkk[$k2]) es exactamente igual ;)

y con respecto al while es porque no se recorre el while con el each de esa manera, se hace asi:

Código PHP:
Ver original
  1. while (list($clave, $valor) = each($kkk)) {
  2.       echo $clave . " => " . $valor;
  3. }

Probalo y fijate si va

Te pregunté porque no me dio igual resultado. Si hago unset($kkk[$k1]) y después cuento el array q queda me da 7 q es correcto, si lo hago así unset($kkk[$k2]) me da 4, cosa q no entiendo porque al igual q tú pensé debía dar igual.

Estos fueron los valores q di a las variables:

$cuatro=12
$diezseis=10
$veintecuatro=6
$veintecinco=1
$treinta=1
$treintasiete=6
$treintaocho=3
$cuarentatres=1
$cuarentaseis=1
$cuarentaocho=9

Como puedes ver al quitar los repetidos me quedan seis valores, más uno por las variables q fueron cero. 6+1=7

En cuanto al while si estoy recorriendo el array, fíjate bien, pasa q en vez de usar list() asigno los valores del array a las variables $elemento y $compara, arriba faltaba un ) de cierre al segundo while, lo arreglé y ya no me da error, pero cuando cuento el array me da 50, como q no hace nada ese código.

Lo pongo de esta forma, q es parecido al tuyo:

while($elemento=each($kkk))
{
while($compara=each($kkk))
{
if($elemento["key"]!=$compara["key"])
{
if($elemento["value"]==$compara["value"])
unset($elemento["key"]);
}
}
}

Y aparece este error Notice: Undefined index: key in C:\wamp\www\euromill\deprueba.php Lo q tampoco entiendo porque me estoy refiriendo a la key del valor $elemento y $compara q se están comparando.

Última edición por alex760125; 10/05/2012 a las 06:44
  #20 (permalink)  
Antiguo 10/05/2012, 08:15
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Comparar valores de un array.

Perdona me confundi evalua donde $k1 != $k2, pero si que $v1 == $v2 entonces solo evaluas los que no son la misma posicion en el vector porque es obvio que van a ser iguales sus valores, entonces como $k1 lo evaluas con todos los $k2, $k1 es el que tenes que eliminar ya que es el que se compara con todos los demas, $k2 itera mas veces que $k1, esa es la razon, Y con respecto al while, no va a funcionar porque en cada each() te pasa de posicion, entonces al recorrer el mismo vector 2 veces en una anidacion, cada each() te pasa 1 posicion, entonces cuando hace el each() en el while de adentro te itera todas las pocisiones hasta el final, entonces cuando vuelve al primer while a hacer el otro each() ya se da cuenta que llegaste al final entonces no sigue, por eso solo te evalua la primer posicion contra todas las demas entendes??

Estas empleando mal la idea del each() en este caso, sirve para cuando lo recorres al vector una vez sola.. con el foreach es distinto por eso lo empleo yo asi.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #21 (permalink)  
Antiguo 10/05/2012, 09:36
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comparar valores de un array.

Muchass gracias por tu ayuda!!

La verdad no lo entiendo del todo, pero voy a leer y pensar con detenimiento lo q me escribes para ver si logro entender cómo es q funcionan esos bucles anidados.
  #22 (permalink)  
Antiguo 12/01/2013, 11:43
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Comparar valores de un array.

Gracias !! eres un crack Vector_Latino, otro que buscaba lo mismo.. me costó pillar-lo XD

Etiquetas: symfony, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:51.