Ver Mensaje Individual
  #47 (permalink)  
Antiguo 16/04/2014, 07:10
Qazser
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 1 mes
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