Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ordenar array en php

Estas en el tema de ordenar array en php en el foro de PHP en Foros del Web. Desde ya te pido disculpas por el Mal Entendido, pero deberías tenerlo en Cuenta cuando Respondes. Te acepto tus disculpas y espero aceptes las mías ...

  #31 (permalink)  
Antiguo 15/04/2014, 13:37
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Desde ya te pido disculpas por el Mal Entendido, pero deberías tenerlo en Cuenta cuando Respondes.

Te acepto tus disculpas y espero aceptes las mías

Te muestro como resolví el tema del Array

Código PHP:
Ver original
  1. $Jockeysarray[$y] = array(
  2.     "0"  => $PNomJoc[$y],
  3.     "1"  => $P1rocan[$y],
  4.     "2"  => $P1ropor[$y],
  5.     "3"  => $P2dacan[$y],
  6.     "4"  => $P2dapor[$y],
  7.     "5"  => $P3racan[$y],
  8.     "6"  => $P3rapor[$y],
  9.     "7"  => $Ptrifecta[$y],
  10.     "8"  => $P4tocan[$y],
  11.     "9"  => $P4topor[$y],
  12.     "10"  => $Pcuatrifecta[$y],
  13.     "11"  => $P5tocan[$y],
  14.     "12"  => $P5topor[$y],
  15.     "13"  => $P6tocan[$y],
  16.     "14"  => $P6topor[$y],
  17.     "15"  => $Ptotalcarrr[$y],
  18.     "16"  => $Pano[$y],
  19. );
  20.  
  21.  
  22.  
  23. }
  24. $y=0;
  25. $m=0;
  26. for ($y=0; $y<($p); $y++ ) {
  27.  
  28. ?>
  29.  
  30.  
  31.  
  32. <tbody>
  33.         <tr>
  34.             <td ><?php print_r($Jockeysarray[$y][0]); ?></td>
  35.             <td ><?php print_r($Jockeysarray[$y][1]);?></td>
  36.             <td ><?php print_r($Jockeysarray[$y][2]);?></td>
  37.             <td ><?php print_r($Jockeysarray[$y][3]);?></td>
  38.             <td ><?php print_r($Jockeysarray[$y][4]);?></td>
  39.             <td ><?php print_r($Jockeysarray[$y][5]);?></td>
  40.             <td ><?php print_r($Jockeysarray[$y][6]);?></td>
  41.             <td ><?php print_r($Jockeysarray[$y][7]);?></td>
  42.             <td ><?php print_r($Jockeysarray[$y][8]);?></td>
  43.             <td ><?php print_r($Jockeysarray[$y][9]);?></td>
  44.             <td ><?php print_r($Jockeysarray[$y][10]);?></td>
  45.             <td ><?php print_r($Jockeysarray[$y][11]);?></td>
  46.             <td ><?php print_r($Jockeysarray[$y][12]);?></td>
  47.             <td ><?php print_r($Jockeysarray[$y][13]);?></td>
  48.             <td ><?php print_r($Jockeysarray[$y][14]);?></td>
  49.             <td ><?php print_r($Jockeysarray[$y][15]);?></td>
  50.             <td ><?php print_r($Jockeysarray[$y][16]);?></td>
  51.         </tr>
  52. </tbody>
  53. </div>
  54.  
  55. <?php
  56. ++$m;


Pero el ordenamiento con ARSORT todavía no lo pude hacer funcionar,

Si se te ocurre alguna idea, te lo voy a agradecer.

Última edición por SilviaMontanari; 15/04/2014 a las 13:49 Razón: Agregar
  #32 (permalink)  
Antiguo 15/04/2014, 13:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: ordenar array en php

Solo por curiosidad, ¿lo intentaste de la forma en que te expliqué?, es que como te dijo Qazser, esto es innecesario:

Código PHP:
Ver original
  1. $Jockeysarray[$y] = array(
  2.     "0"  => $PNomJoc[$y],
  3.     "1"  => $P1rocan[$y],
  4.     "2"  => $P1ropor[$y],
  5.     "3"  => $P2dacan[$y],
  6.     "4"  => $P2dapor[$y],
  7.     "5"  => $P3racan[$y],
  8.     "6"  => $P3rapor[$y],
  9.     "7"  => $Ptrifecta[$y],
  10.     "8"  => $P4tocan[$y],
  11.     "9"  => $P4topor[$y],
  12.     "10"  => $Pcuatrifecta[$y],
  13.     "11"  => $P5tocan[$y],
  14.     "12"  => $P5topor[$y],
  15.     "13"  => $P6tocan[$y],
  16.     "14"  => $P6topor[$y],
  17.     "15"  => $Ptotalcarrr[$y],
  18.     "16"  => $Pano[$y],
  19. );

Ya que está dentro de un bucle, por lo tanto, en cada iteración, las posiciones del array que van del 0 al 16, siempre tomarán un valor nuevo, por lo que nunca tendrás un array en cada una de esas ubicaciones. No puedes aplicar un ordenamiento si no tienes un array que ordenar.

Inténtalo así y nos dices como te fue:

Código PHP:
Ver original
  1. <?php
  2. while ($fila3 = mysqli_fetch_assoc($result3)) {
  3.     $Pidjoc[] = $fila3['idjockey'];
  4.     $PNomJoc[] = $fila3['jockey'];
  5.     $P1rocan[] = $fila3['1rocan'];
  6.     $P1ropor[] = $fila3['1ropor'];
  7.     $P2dacan[] = $fila3['2dacan'];
  8.     $P2dapor[] = $fila3['2dapor'];
  9.     $P3racan[] = $fila3['3racan'];
  10.     $P3rapor[] = $fila3['3rapor'];
  11.     $Ptrifecta[] = $fila3['trifecta'];
  12.     $P4tocan[] = $fila3['4tocan'];
  13.     $P4topor[] = $fila3['4topor'];
  14.     $Pcuatrifecta[] = $fila3['cuatrifecta'];
  15.     $P5tocan[] = $fila3['5tocan'];
  16.     $P5topor[] = $fila3['5topor'];
  17.     $P6tocan[] = $fila3['6tocan'];
  18.     $P6topor[] = $fila3['6topor'];
  19.     $Ptotalcarrr[] = $fila3['carrtot'];
  20.  
  21.     $p++;
  22. }
  23.  
  24. arsort($P1ropor);
  25. ?>
  26.  
  27. <tbody>
  28. <?php
  29. for ($i = 0, $i < $p; $i++){
  30. ?>
  31.     <tr>
  32.         <td><b><?=$PNomJoc[$i]?></b></td>
  33.         <td><b><?=$P1rocan[$i]?></b></td>
  34.         <td><b><?=$P1ropor[$i]?></b></td>
  35.         <td><b><?=$P2dacan[$i]?></b></td>
  36.         <td><?=$P2dapor[$i]?></td>
  37.         <td><b><?=$P3racan[$i]?></b></td>
  38.         <td><?=$P3rapor[$i]?></td>
  39.         <td><?=$Ptrifecta[$i]?></td>
  40.         <td><?=$P4tocan[$i]?></td>
  41.         <td><?=$P4topor[$i]?></td>
  42.         <td><?=$Pcuatrifecta[$i]?></td>
  43.         <td><?=$P5tocan[$i]?></td>
  44.         <td><?=$P5topor[$i]?></td>
  45.         <td><?=$P6tocan[$i]?></td>
  46.         <td><?=$P6topor[$i]?></td>
  47.         <td><?=$Ptotalcarrr[$i]?></td>
  48.         <td><?=$Anio?></td>
  49.     </tr>
  50. <?php
  51. }
  52. ?>
  53. </tbody>

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
  #33 (permalink)  
Antiguo 15/04/2014, 14:16
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Cita:
Iniciado por Alexis88 Ver Mensaje
Solo por curiosidad, ¿lo intentaste de la forma en que te expliqué?, es que como te dijo Qazser, esto es innecesario:

Código PHP:
Ver original
  1. $Jockeysarray[$y] = array(
  2.     "0"  => $PNomJoc[$y],
  3.     "1"  => $P1rocan[$y],
  4.     "2"  => $P1ropor[$y],
  5.     "3"  => $P2dacan[$y],
  6.     "4"  => $P2dapor[$y],
  7.     "5"  => $P3racan[$y],
  8.     "6"  => $P3rapor[$y],
  9.     "7"  => $Ptrifecta[$y],
  10.     "8"  => $P4tocan[$y],
  11.     "9"  => $P4topor[$y],
  12.     "10"  => $Pcuatrifecta[$y],
  13.     "11"  => $P5tocan[$y],
  14.     "12"  => $P5topor[$y],
  15.     "13"  => $P6tocan[$y],
  16.     "14"  => $P6topor[$y],
  17.     "15"  => $Ptotalcarrr[$y],
  18.     "16"  => $Pano[$y],
  19. );

Ya que está dentro de un bucle, por lo tanto, en cada iteración, las posiciones del array que van del 0 al 16, siempre tomarán un valor nuevo, por lo que nunca tendrás un array en cada una de esas ubicaciones. No puedes aplicar un ordenamiento si no tienes un array que ordenar.

Inténtalo así y nos dices como te fue:

Código PHP:
Ver original
  1. <?php
  2. while ($fila3 = mysqli_fetch_assoc($result3)) {
  3.     $Pidjoc[] = $fila3['idjockey'];
  4.     $PNomJoc[] = $fila3['jockey'];
  5.     $P1rocan[] = $fila3['1rocan'];
  6.     $P1ropor[] = $fila3['1ropor'];
  7.     $P2dacan[] = $fila3['2dacan'];
  8.     $P2dapor[] = $fila3['2dapor'];
  9.     $P3racan[] = $fila3['3racan'];
  10.     $P3rapor[] = $fila3['3rapor'];
  11.     $Ptrifecta[] = $fila3['trifecta'];
  12.     $P4tocan[] = $fila3['4tocan'];
  13.     $P4topor[] = $fila3['4topor'];
  14.     $Pcuatrifecta[] = $fila3['cuatrifecta'];
  15.     $P5tocan[] = $fila3['5tocan'];
  16.     $P5topor[] = $fila3['5topor'];
  17.     $P6tocan[] = $fila3['6tocan'];
  18.     $P6topor[] = $fila3['6topor'];
  19.     $Ptotalcarrr[] = $fila3['carrtot'];
  20.  
  21.     $p++;
  22. }
  23.  
  24. arsort($P1ropor);
  25. ?>
  26.  
  27. <tbody>
  28. <?php
  29. for ($i = 0, $i < $p; $i++){
  30. ?>
  31.     <tr>
  32.         <td><b><?=$PNomJoc[$i]?></b></td>
  33.         <td><b><?=$P1rocan[$i]?></b></td>
  34.         <td><b><?=$P1ropor[$i]?></b></td>
  35.         <td><b><?=$P2dacan[$i]?></b></td>
  36.         <td><?=$P2dapor[$i]?></td>
  37.         <td><b><?=$P3racan[$i]?></b></td>
  38.         <td><?=$P3rapor[$i]?></td>
  39.         <td><?=$Ptrifecta[$i]?></td>
  40.         <td><?=$P4tocan[$i]?></td>
  41.         <td><?=$P4topor[$i]?></td>
  42.         <td><?=$Pcuatrifecta[$i]?></td>
  43.         <td><?=$P5tocan[$i]?></td>
  44.         <td><?=$P5topor[$i]?></td>
  45.         <td><?=$P6tocan[$i]?></td>
  46.         <td><?=$P6topor[$i]?></td>
  47.         <td><?=$Ptotalcarrr[$i]?></td>
  48.         <td><?=$Anio?></td>
  49.     </tr>
  50. <?php
  51. }
  52. ?>
  53. </tbody>

Saludos
Lo acabo de probar, pero es lo mismo no ordena los valores
  #34 (permalink)  
Antiguo 15/04/2014, 14:31
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Por ejemplo yo encontré este ejemplo repetido por todos lados pero no logro hacerlo funcionar

Código PHP:
Ver original
  1. $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
  2. arsort($fruits);
  3. foreach ($fruits as $key => $val) {
  4.     echo "$key = $val\n";
  5. }
  #35 (permalink)  
Antiguo 15/04/2014, 14:52
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: ordenar array en php

si de verdad hicistes todo como dijimos @Alexis88 y yo, solo se me ocurre una cosa

Cuando hicistes el var_dump en pagina 1, imprimiendo los contenidos de todas las variables, salia el tipo de dato, y los numeros eran STRING, antes que nada, no estoy seguro, no lo sé....Pero opino que puede ser que no te lo ordena por ser textos, si le indicas el tipo de datos a la variable podria funcionar

Para ello haces lo siguiente, en el while del SELECT

Código PHP:
Ver original
  1. while ($fila3 = mysqli_fetch_assoc($result3)) {
  2.  
  3. $Pidjoc[]       =   $fila3['idjockey'];
  4. $PNomJoc[]      =   $fila3['jockey'];
  5. $P1rocan[]      =   $fila3['1rocan'];
  6. $P1ropor[]      =   (real)$fila3['1ropor'];

No me imagino que sea eso, pero si un arsort normal y comun no sirve :/ por probar..
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #36 (permalink)  
Antiguo 15/04/2014, 15:07
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Lo probe y nada, pero en el var_dump aparece como float
  #37 (permalink)  
Antiguo 15/04/2014, 15:10
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Me doy por vencida por hoy, veré si vuelvo mañana a la pelea
  #38 (permalink)  
Antiguo 15/04/2014, 15:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: ordenar array en php

Solo por las dudas, luego del bucle de la consulta (no el bucle for), haz lo siguiente:

Código PHP:
Ver original
  1. echo "<pre>";
  2. var_dump($P1ropor);
  3. echo "</pre>";

Y coloca el resultado acá, así sabremos a ciencia cierta qué datos y tipos contiene el array.
__________________
«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
  #39 (permalink)  
Antiguo 15/04/2014, 17:06
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Acá está el resultado que me pediste

array(11) {
[0]=>
float(16.22)
[1]=>
float(11.26)
[2]=>
float(1.56)
[3]=>
float(12)
[4]=>
float(8.33)
[5]=>
float(9.18)
[6]=>
float(6.19)
[7]=>
float(0)
[8]=>
float(13.21)
[9]=>
float(7.58)
[10]=>
float(10)
}
  #40 (permalink)  
Antiguo 15/04/2014, 17:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: ordenar array en php

¿Y dices que no se ordenan los datos utilizando la función arsort? Pues qué raro, porque hice la prueba y los ordena en forma descendente y manteniendo la asociación con los índices: http://ideone.com/aIRAYq

Sin embargo, al momento de imprimir los datos en la tabla, recorres el array desde el primer índice, por lo que da igual el que lo ordenes. Mejor utiliza la función rsort que es la que inicialmente te recomendé, romperá la asociación con los índices, pero ordenará los datos y los mostrará en el orden dado.
__________________
«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
  #41 (permalink)  
Antiguo 15/04/2014, 17:58
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Si en vez de for se usara while, ¿No los pondría por orden de aparición?
  #42 (permalink)  
Antiguo 15/04/2014, 18:11
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Y dices que no se ordenan los datos utilizando la función [URL="http://www.php.net/manual/es/function.arsort.php"][B]arsort[/B][/URL]? Pues qué raro, porque hice la prueba y los ordena en forma descendente y manteniendo la asociación con los índices: [url]http://ideone.com/aIRAYq[/url]

Sin embargo, al momento de imprimir los datos en la tabla, recorres el array desde el primer índice, por lo que da igual el que lo ordenes. Mejor utiliza la función [URL="http://www.php.net/manual/es/function.rsort.php"][B]rsort[/B][/URL] que es la que inicialmente te recomendé, romperá la asociación con los índices, pero ordenará los datos y los mostrará en el orden dado.
La columna la ordeno mira el var_dump de la columna despues arsort

array(11) { [0]=> float(16.22) [8]=> float(13.21) [3]=> float(12) [1]=> float(11.26) [10]=> float(10) [5]=> float(9.18) [4]=> float(8.33) [9]=> float(7.58) [6]=> float(6.19) [2]=> float(1.56) [7]=> float(0) }

Habría que ver como mostralo por orden de aparicion
  #43 (permalink)  
Antiguo 15/04/2014, 18:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: ordenar array en php

El bucle que utilices es lo de menos, lo que importa es el array y sus elementos. Como ya están ordenados los datos, simplemente imprímelos. Prueba con el código que inicialmente te di, pero verifica que estés aplicando la función rsort antes de imprimir los datos.
__________________
«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
  #44 (permalink)  
Antiguo 15/04/2014, 21:08
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

La verdad es que no da resultados, tanto rsort como como arsort, modifican solo una columna, y yo preciso modificar todas juntas, porque sino se mezclan todos los numeros y no se corresponden.

Voy a seguir buscando.

por ejemplo para mover todas las columnas muchas páginas dan esta función:


Código PHP:
Ver original
  1. function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) {
  2.     $position = array();
  3.     $newRow = array();
  4.     foreach ($toOrderArray as $key => $row) {
  5.             $position[$key]  = $row[$field];
  6.             $newRow[$key] = $row;
  7.     }
  8.     if ($inverse) {
  9.         arsort($position);
  10.     }
  11.     else {
  12.         asort($position);
  13.     }
  14.     $returnArray = array();
  15.     foreach ($position as $key => $pos) {
  16.         $returnArray[] = $newRow[$key];
  17.     }
  18.     return $returnArray;
  19. }

Pero lamentablemente no la pude hacer funcionar.

A lo mejor Uds. que tienen mucha más experiencia me pueden explicar como usarla correctamente.

el pegarla en la planilla que te pase antes con la variable le agrego ese código de función y me da este error

Fatal error: Cannot redeclare orderMultiDimensionalArray() (previously declared in /var/www/web/web/progra/comparajockey2.php:295) in /var/www/web/web/progra/comparajockey2.php on line 295

Un Beso
  #45 (permalink)  
Antiguo 15/04/2014, 22:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: ordenar array en php

Supongo que cuando mencionas a la "columna", te refieres a uno de los arrays que alimentas en el bucle de la consulta (el while). De ser así, aplica a todos la función de ordenamiento, de esta forma, se ordenarán los datos de todos los arrays.

Con respecto a lo segundo, pues el mensaje es claro, dice que no puede re-declarar la función orderMultiDimensionalArray(), la cual ha sido previamente declarada. Basta con que declares una vez a una función para que la puedas utilizar cuantas veces quieras.

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
  #46 (permalink)  
Antiguo 16/04/2014, 02:51
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: ordenar array en php

Cita:
Iniciado por SilviaMontanari Ver Mensaje
La verdad es que no da resultados, tanto rsort como como arsort, modifican solo una columna, y yo preciso modificar todas juntas, porque sino se mezclan todos los numeros y no se corresponden.
Claro, porque con el rsort solo modifican un array, no los 16. No está mal, funciona segun el planteamiento dado.
Es otra cosa mas que nunca antes se ha dicho...Siempre entendiamos que solo el array del indice 2 debe reordenarse. Yo por ejemplo no sabia que querias ordenas los otros 15 arrays con el orden del array[2]

Estoy en el trabajo, esta tarde te corrijo el script para que te funcione, si hasta entonces otro no te dio la respuesta que necesitas ahora.
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #47 (permalink)  
Antiguo 16/04/2014, 07:10
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: ordenar array en php

Antes que nada

@Alexis88: Cada dia se aprende algo nuevo, aunque solo sean detalles, gracias! yo no sabia que con <?=$a ?> se podian imprimir variables sin echo. Me di cuenta mirando tu código para hacer el mio final.

Bien, aquí tienes el código que ordena TODOS los arrays por los valores del Array "camp 2" el cual está en orden descendiente.

Código PHP:
<?php
$p
=0;
$w=0;
echo
"<br>Total de Jockey cargados: $prn <br>";
for (
$w=0$w<($prn $joccero); $w++ ) {
 
$Pidjock2a=$Pidjock[$w];
$Pnomjoc2a=$Pnomjoc[$w];
 
 
 
$filtro3= ("SELECT *
 
 
    FROM turf_esta_joc as e1
 
    Left Join turf_jockey   AS j1       ON  e1.idjockey = j1.idjockey
 
 
    where e1.idjockey = '$Pidjock2a' and e1.anio = '$Anio' and e1.idubiccn=$Hipo
 
 
 
 
 
                "
) or die ("no se ha podido conectar");
 
if (
$result3 mysqli_query($mysqli$filtro3)) {
 
$row_cnt3 mysqli_num_rows($result3);
    
/* fetch associative array */
while ($fila3 mysqli_fetch_assoc($result3)) {
 
$Pidjoc[]       =   $fila3['idjockey'];
$PNomJoc[]      =   $fila3['jockey'];
$P1rocan[]      =   $fila3['1rocan'];
$P1ropor[]      =   $fila3['1ropor'];
$P2dacan[]      =   $fila3['2dacan'];
$P2dapor[]      =   $fila3['2dapor'];
$P3racan[]      =   $fila3['3racan'];
$P3rapor[]      =   $fila3['3rapor'];
$Ptrifecta[]    =   $fila3['trifecta'];
$P4tocan[]      =   $fila3['4tocan'];
$P4topor[]      =   $fila3['4topor'];
$Pcuatrifecta[] =   $fila3['cuatrifecta'];
$P5tocan[]      =   $fila3['5tocan'];
$P5topor[]      =   $fila3['5topor'];
$P6tocan[]      =   $fila3['6tocan'];
$P6topor[]      =   $fila3['6topor'];
$Ptotalcarrr[]  =   $fila3['carrtot'];
 
++
$p;
 
}}}

//Vamos a clonar el array para ordenarlo segun un truco
$P1roporS=$P1ropor;

//Aqui la linea para ordenar el array campo 2
arsort($P1roporS);  

echo 
"Cantidad Jockey 2014 $p <br>";
foreach (
$P1roporS as $var ) {

    
//El clon está ordenado y nos devuelve el valor mas alto, pero en posición 1, nosotros necesitamos saber que posición es 1 en los arrays originales
    
$ind array_keys ($P1ropor$var);

    
//aplicamos la posicion a $i, array_keys siempre devuelve un array aunque encuentre varias, por eso ponemos el [0], porque se supone que siempre necesitaremos la primera
    
$i $ind[0];

    
//Explicando lo succedido, el clon está ordenado, 
    //a partir del orden del clon, sacamos la posicion original mediante la variable original
    //Y aplicamos esa posicion al resto de las variables mediante $i

    
?>
     
    <tbody>
        <tr>
            <td><b><?=$PNomJoc[$i]?></b></td>
            <td><b><?=$P1rocan[$i]?></b></td>
            <td><b><?=$P1ropor[$i]?></b></td>
            <td><b><?=$P2dacan[$i]?></b></td>
            <td><?=$P2dapor[$i]?></td>
            <td><b><?=$P3racan[$i]?></b></td>
            <td><?=$P3rapor[$i]?></td>
            <td><?=$Ptrifecta[$i]?></td>
            <td><?=$P4tocan[$i]?></td>
            <td><?=$P4topor[$i]?></td>
            <td><?=$Pcuatrifecta[$i]?></td>
            <td><?=$P5tocan[$i]?></td>
            <td><?=$P5topor[$i]?></td>
            <td><?=$P6tocan[$i]?></td>
            <td><?=$P6topor[$i]?></td>
            <td><?=$Ptotalcarrr[$i]?></td>
            <td><?=$Anio?></td>
        </tr> 
    </tbody>
    </div>
     
    <?php
}
Un añadido: Si la pregunta hubiera estado mas desarrollada, y el código completo hubiera sido subido, esta hubiera sido mi primer respuesta, nos hubieramos ahorrado 2 dias, 2 páginas y una pelea inecesaria.

Y si, yo para buscar el arra_keys, y el arsort, he acudido en ambos casos a la documentación PHP. El truco está en saber que existen y aplicarlos sabiamente (como el truco que he usado aquí, ordenando el clon), y sino saber como encontrarlo. La documentación siempre debe estar cerca de un desarrollador que se toma serio su oficio.
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #48 (permalink)  
Antiguo 16/04/2014, 10:48
Avatar de SilviaMontanari  
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Muchas Gracias amigos, me han resuelto el Problema y ahora puedo continuar.

Un Gran Beso

Y Gracias al esfuerzo de ambos por ayudarme

Etiquetas: Ninguno
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:01.