Foros del Web » Programando para Internet » PHP »

Problemas con un array

Estas en el tema de Problemas con un array en el foro de PHP en Foros del Web. Hola Amigos!!! voy a molestar con una consulta paso a explicar desde una consulta a la bd obtengo el siguiente registro @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 23/08/2012, 12:52
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Problemas con un array

Hola Amigos!!!
voy a molestar con una consulta
paso a explicar
desde una consulta a la bd obtengo el siguiente registro
Código PHP:
Ver original
  1. echo $row['arti'].'<br>';
  2. 5 |5 |5 |5 |5 |5 |5 |5 |7
  3. 5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5 |5
despues quito los separadores y me imprime esto
Código PHP:
Ver original
  1. $data4[] =str_replace('|','',$row['arti']);
  2. print_r($data4);
  3. Array ( [0] => 5 5 5 5 5 5 5 5 7 [1] => 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
lo que necesito es que el valor 0 tenga como elemento el numero 2 y el valor 1 tenga como elemento el numero 1 , porque? simplemente porque en el valor 0 tengo 9 elementos y 8 se repiten entonces como podria lograr que de alguna forma se eliminen los elementos repetidos y se cuenten cuantos quedaron , en este caso , el valo0r 0 tendria que quedar en 2 y el valor 1 en 1(ya que los elementos son todos iguales)
estube probando con
Código PHP:
Ver original
  1. $data = array_values(array_unique($data4));
pero sin resultados favorables
Saludos y muchas gracias por cualquier ayuda que me puedan brindar
  #2 (permalink)  
Antiguo 23/08/2012, 13:21
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Problemas con un array

Hola, la función count_chars() te puede ayudar.
Solo ten cuidado con el espacio, esta función te cuenta el número
de apariciones...

Para mayor información
http://www.php.net/manual/es/function.count-chars.php
  #3 (permalink)  
Antiguo 23/08/2012, 13:23
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con un array

Buenisimo!!!
gracias por responder
ya me fijo
Saludos
  #4 (permalink)  
Antiguo 23/08/2012, 13:54
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Problemas con un array

Hola, count_chars() se limita solo a caracteres.
Asi que al parecer, es mucho mejor usar
array_unique().
Agregando algo como sigue a tu código queda:
$a = $data4;
foreach( $a as $k=>$v ){
echo $v . " =>ocurrencias(".count(array_unique( explode(" ",$v ))).") \n";
}

//siempre asumiento que $data4 es un arreglo y que cada elemento
//esta separado por un espacio " "
  #5 (permalink)  
Antiguo 23/08/2012, 14:03
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con un array

adapte el codigo y la salida fue esta

5 5 5 5 5 5 5 5 7 =>ocurrencias(3)
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 =>ocurrencias(2)
hasta aca todo bien
pero como haria para transformar por ejemplo esto.
5 5 5 5 5 5 5 5 7 en el numero 2
porque tendria dos numeros distintos el 5 y el 7
Muchas gracias por responder
  #6 (permalink)  
Antiguo 23/08/2012, 14:16
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Problemas con un array

Seguro que es por espacios a los lados en cada posición del arreglo,
agrega un trim() asi trim( $v ).
//un trim por cada posición del arreglo.



Espero te funcione.
  #7 (permalink)  
Antiguo 23/08/2012, 14:23
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con un array

Bueno
mira consegui que la salida sea esta
Código PHP:
Ver original
  1. Array ( [0] => 555555557 [1] => 5555555555555555555555555555555555555555555555555555555
conoces alguna funcion que maneje cadenas y haga lo que neesito
estube mirando aca
pero no encontre nada de lo que necesito
  #8 (permalink)  
Antiguo 23/08/2012, 14:29
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Problemas con un array

Puedes hacerlo asi:

<?php
//Contar caracteres
//count_chars($data, 1)
//NOTA: cuidado con el espacio.

$a[0] = " 5 5 5 5 5 5 5 5 7 8 9 55 ";
$a[1] = " 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ";
$a[2] = " 5 5 110 50 20 5 ";

foreach( $a as $k=>$v ){
echo $v."=>ocurrencias(".(count(count_chars( $v,1 ))-1).")";
}

//otra forma
echo "<br>otra forma:<br>";
foreach( $a as $k=>$v ){
echo $v . " =>ocurrencias(".count(array_unique( explode(" ",trim($v) ))).") \n";
}
?>
  #9 (permalink)  
Antiguo 23/08/2012, 14:49
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con un array

buenismo ya casi esta pero tengo un inconveniente
con el codigo que me pasaste
Código PHP:
Ver original
  1. foreach( $data5 as $k=>$v ){
  2. echo $v."=>ocurrencias(".(count(count_chars( $v,1 ))).")";
  3. }
y sale esto
Código PHP:
Ver original
  1. 555555557=>ocurrencias(2) bien
  2. 5555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  3. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  4. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  5. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  6. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  7. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  8. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  9. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  10. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  11. 555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=>ocurrencias(1)bien
  12. 5555555555555555555555555555555555555555555555555555555555555555555555555555555555135555555555555555555555555555555=>ocurrencias(3) nooooo jaja
este ultimo no estaria bien porque me esta contando los 5 el 1 y el 3 y en realidad es un numero 13
lo que me tendria que dar =>ocurrencias(2)
si me podes seguir ayudando te agradeceria un monton
Saludos
  #10 (permalink)  
Antiguo 23/08/2012, 16:33
 
Fecha de Ingreso: junio-2012
Mensajes: 23
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Problemas con un array

Usa la forma 2
//recuerda que count_chars() solo es para caracteres
//en este casos solo unidades, cualquier cantidad que tenga más de 2 dígitos
//te la tomará como 2 cantidades.

$data4[] =str_replace('|','',$row['arti']);
print_r($data4);
Array ( [0] => 5 5 5 5 5 5 5 5 7 [1] => 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
$a = $data4;
//otra forma
echo "<br>otra forma:<br>";
foreach( $a as $k=>$v ){
echo $v . " =>ocurrencias(".count(array_unique( explode(" ",trim($v) ))).") \n";
}
//recuerda que los elementos en cada posicion deben estar separados con " "
//un espacio, para que funcione el explode
//deberia de funcionar.
  #11 (permalink)  
Antiguo 23/08/2012, 16:47
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con un array

buenisimo!!!
ya lo pruebo
Gracias nuevamente
  #12 (permalink)  
Antiguo 23/08/2012, 16:53
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con un array

Ahora Si!!!!
te agradezco muchisimo haberme ayudado
tengo que ponerme a leer mas el manual de php(sobre todo las funciones con string)
Saludos!!!

Etiquetas: registro
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:44.