Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar primer dato de un array

Estas en el tema de Mostrar primer dato de un array en el foro de PHP en Foros del Web. Hola, necesito ordenar los valores de un array de mayor a menor (con krsort, sort, asort, ksort... no lo consigo) y luego mostrar los dos ...
  #1 (permalink)  
Antiguo 11/06/2015, 11:39
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Mostrar primer dato de un array

Hola, necesito ordenar los valores de un array de mayor a menor (con krsort, sort, asort, ksort... no lo consigo) y luego mostrar los dos primeros registros. Ejemplo, tengo este array:

$datos = ["964"=>"Hola", "498"=>"Adios", "362"=>"Buenos dias", "516"=>"Buenas noches", "370"=>"Buenas tardes"];

Necesitaría ordenarlos de mayor a menor y mostrar los dos primeros. Por poner un ejemplo claro me gustaría mostrar la frase:

"Se han dicho <964> veces <Hola> y <516> veces las <Buenas noches>."

Llevo como toda la tarde intentándolo, pero no lo consigo, ni si quiera consigo mostrar sólo el primer registro... helpme
  #2 (permalink)  
Antiguo 11/06/2015, 11:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mostrar primer dato de un array

Postea el código de cómo lo estás haciendo...

Creo que ya sabes que tienes que hcer eso si pretendes que entendamos lo que no haces correctamente, ¿no te parece?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/06/2015, 12:08
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Mostrar primer dato de un array

Código PHP:
Ver original
  1. $datos = ["964"=>"Hola", "498"=>"Adios", "362"=>"Buenos dias", "516"=>"Buenas noches", "370"=>"Buenas tardes"];
  2.  
  3. krsort($datos); /// He probado con varios http://php.net/manual/es/array.sorting.php
  4.  
  5. foreach ($datos as $val) {
  6.     $tagFinal = $val;
  7. }
  8.  
  9. echo $tagFinal;

Directamente es que no sé como darle una referencia para que me muestre 1 registro en concreto...
  #4 (permalink)  
Antiguo 11/06/2015, 13:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mostrar primer dato de un array

El ordenamiento se realiza correctamente (lo acabo de comprobar), por lo que lo único que faltaría sería obtener a los dos primeros valores. Con tantas funciones que ofrece PHP para manipular arrays, las posibilidades son muchas. Una de las que se me ocurre es la siguiente:

Código PHP:
Ver original
  1. $datos = ["964"=>"Hola", "498"=>"Adios", "362"=>"Buenos dias", "516"=>"Buenas noches", "370"=>"Buenas tardes"];
  2. krsort($datos);
  3. $aux = $datos;
  4. $valorPrimero = array_shift($aux);
  5. $clavePrimero = array_search($valorPrimero, $datos);
  6. $valorSegundo = array_shift($aux);
  7. $claveSegundo = array_search($valorSegundo, $datos);
  8. echo "Se han dicho $clavePrimero veces $valorPrimero y $claveSegundo veces las $valorSegundo.";

El proceso es simple. Luego de ordenar los datos del array, creo una copia del mismo y con ayuda de las funciones array_shift() y array_search(), tomo tanto a los dos primeros valores de la copia del array ordenado como a sus índices.

Finalmente, imprimo los datos, siendo el resultado de este ejemplo lo siguiente:

Código HTML:
Ver original
  1. Se han dicho 964 veces Hola y 516 veces las Buenas noches.

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 12/06/2015, 03:31
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Mostrar primer dato de un array

Madre mia, el problema era que no creaba el array correctamente. Lo creaba con un while, añadiendo a una variable la cadena $array .= '"964"=>"Hola"' y lo guardaba todo como un string. Cuando he hecho var_dump he visto el (1)...

De todas formas no sabía como extraer los datos, muchísimas gracias Alexis88!!!!

Etiquetas: dato, primer, 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 08:37.