Foros del Web » Programando para Internet » PHP »

Array pervertido

Estas en el tema de Array pervertido en el foro de PHP en Foros del Web. El problema es el siguiente Tengo una clase que me genera una cantidad de arreglos x, y cada arreglo debe tener 15 indices y en ...
  #1 (permalink)  
Antiguo 20/03/2012, 20:13
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Array pervertido

El problema es el siguiente

Tengo una clase que me genera una cantidad de arreglos x, y cada arreglo debe tener 15 indices y en cada indice debe haber un numero del 1 al 25 los indices no deben repetirce (No lo hacen) el problema es al final despues de generar todos los arreglos

$array[0]=array(0=>s,1=>ss,2=>sss,3=>ssss,4=>sssss);
$array[1]=array(0=>s,1=>ss,2=>sss,3=>ssss,4=>sssss);
$array[2]=array(0=>sa,1=>se,2=>si,3=>so,5=>su);
$array[3]=array(0=>s,1=>ss,2=>sss,3=>ssss,4=>sssss);

como se borran los arreglos repetidos para que quede asi:

$array[0]=array(0=>s,1=>ss,2=>sss,3=>ssss,4=>sssss);
$array[1]=array(0=>sa,1=>se,2=>si,3=>so,5=>su);
  #2 (permalink)  
Antiguo 20/03/2012, 21:11
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Array pervertido

Me llamo mucho la atención este tema por el titulo y quise saber porque los array eran tan "pervertidos" despues de leerlo supongo que seran repetidos

Pues aunque no he usado las funciones que te comento existen funciones como array_diff, array_diff_assoc que quizas podrian llegar a servirte para tal fin. Igual revisa el listado completo seguro encontraras algo que te sirva.

http://php.net/manual/es/ref.array.php

Igual no sobraria que revisaras como estas manejando tu clase porque creo que estas cometiendo un error de programación.

Ojala y te sirva de ayuda para solucionar tu problema.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 21/03/2012, 12:57
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Array pervertido

nada hermano sigo sin resolver el problema, al parecer es bien complicado :/
  #4 (permalink)  
Antiguo 21/03/2012, 14:08
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Array pervertido

Hola no se si te ayudara pero yo tengo algo asi:

Código PHP:
Ver original
  1. <?php
  2. $array[0]=array(0=>'ss',1=>'ss',2=>'sss',3=>'ssss',4=>'sssss');
  3. $array[1]=array(0=>'s',1=>'ss',2=>'sss',3=>'ssss',4=>'sssss');
  4. $array[2]=array(0=>'sa',1=>'se',2=>'si',3=>'so',5=>'su');
  5. $array[3]=array(0=>'s',1=>'ss',2=>'sss',3=>'ssss',4=>'sssss');
  6. print_r(array_unique(array_merge($array[0],$array[1],$array[2],$array[3])));  
  7. ?>

Resultado sin elementos repetidos:
Código PHP:
Ver original
  1. Array ( [0] => ss [2] => sss [3] => ssss [4] => sssss [5] => s [10] => sa [11] => se [12] => si [13] => so [14] => su )

Saludos.

PD:Por que le pusiste array pervertido
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #5 (permalink)  
Antiguo 21/03/2012, 15:34
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Array pervertido

nooo el problema no son los indices sino los arrays que estan dentro de la variable en si
ejemplo

$variable[0]=array(0=>33,1=>34);
$variable[1]=array(0=>33,1=>34);
$variable[2]=array(0=>44,1=>55);

Como pueden ver $variable tiene 3 arreglos de los cuales 2 son iguales, lo que se quiere es eliminar el que se repite o los que se repitan y que quede de esta forma

Ya no hay arreglos repetidos dentro de $variable
$variable[0]=array(0=>33,1=>34);
$variable[1]=array(0=>44,1=>55);

Considera un array igual cuando $variable[0] es igual a los indices de $variable[1] pero tomando en cuenta el orden
  #6 (permalink)  
Antiguo 21/03/2012, 16:08
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Array pervertido

hola

mmmm pruebalo asi:

Código PHP:
Ver original
  1. $variable[0]=array(0=>33,1=>34);
  2. $variable[1]=array(0=>33,1=>34);
  3. $variable[2]=array(0=>44,1=>55);
  4. $arr =  array_unique($variable);
  5. //var_dump($arr);
  6. $count = count($arr[0]);
  7. for($i = 0 ;$i < $count; $i++){
  8.        
  9.           echo $arr[0][$i]."<br/>";
  10. }
  #7 (permalink)  
Antiguo 21/03/2012, 16:18
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Array pervertido

Podes utilizar in_array() a la hora de armar la matriz.
Para evitar la duplicacion.

En caso que no puedas modificar el ARMADO de la matriz, vas a tener que anilizarlo con esta funcion que te mensiono, dentro de un bucle y armarla de nuevo.
__________________
Mono programando!
twitter.com/eguimariano
  #8 (permalink)  
Antiguo 21/03/2012, 17:26
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Array pervertido

Nada ninguna de las respuestas me ha funcionado xD, mienstras sigo en google pero naadaa, solo encuentro funciones que eliminan los valores duplicados en los indices del array pero noo un array que sea exactamente igual al otro
  #9 (permalink)  
Antiguo 21/03/2012, 17:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Array pervertido

No existe una función que lo haga de forma directa, vas a tener que hacer dos loop y comparar cada indice para que veas sí existe o no un array similar para removerlo, una idea podría ser así:
Código PHP:
Ver original
  1. $limpio = array();
  2. $size = count($variable);
  3. for ($i=0; $i<$size; $i++) {
  4.       $actual = $variable[$i];
  5.       $agregar = true;
  6.       for ($j = 0; $j < $size; $j++) {
  7.             $acomparar = $variable[$j];
  8.  
  9.             // Aqui diseña un algoritmo para verificar sí $actual es igual a $acomparar
  10.             if (!$esigual) { $agregar = false; }
  11.       }
  12.  
  13.       if ($agregar) {
  14.             $limpio[] = $actual;
  15.       }
  16. }
  17.  
  18. var_dump($limpio);

Saludos.
  #10 (permalink)  
Antiguo 22/03/2012, 10:13
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: Array pervertido

Tremenda novedad, que raro que no exista una funcion asi, xD parece tan logico

Bueno... tratare de hacerlo, aunque esta dificil gracias a todos por las respuestas xD
si lo hago les paso el codigo que a alguien la va a servir :p
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 04:22.