Lo que hago es usar asort() para ordenar los valores de un array de forma ascendente, pongo el siguiente ejemplo de cómo lo hago, se que el array lo puedo declarar mas condensado: ( $array=array(8,13,8... etc ) pero es como ejemplo solamente:
Código PHP:
<?
$array[0]=8;
$array[1]=13;
$array[2]=8;
$array[3]=5;
$array[4]=5;
arsort($array);
foreach($array as $i=>$v)
{
echo 'array['.$i.']='.$v.'<br>';
}
?>
array[4]=5
array[3]=5
array[2]=8
array[0]=8
array[1]=13
Y yo necesito que si hay valores iguales, por ejemplo dos 8, no me los desordene, sino que solamente los suba de posicion, por ejemplo que quedara asi:
array[3]=5
array[4]=5
array[0]=8
array[2]=8
array[1]=13
¿me explico? por que el array puede llegar a contener tanto valores distintos completamente (en cuyo caso no tendria problemas con asort() ) o todos los valores pueden ser iguales, por ejemplo si tengo esto:
array[0]=8
array[1]=8
array[2]=8
array[3]=8
array[4]=8
Usando asort() me entrega esto:
array[4]=8
array[3]=8
array[2]=8
array[1]=8
array[0]=8
Siendo que si todos tiene igual valor, no tiene para que cambiar el orden entonces, ¿como seria para que respete un poco mas el orden? por que noto que asort() comienza a leer el array de abajo hacia arriba, no se probablemente haya una forma de impedir esto ¿?.
Lo que pasa es que los indices tienen mucha importancia en mi script y asi como uso el asort, globalmente los resultados llegan a ser un tanto inesperados .
Bueno, gracias .
Saludos,