ma perchč i compiti per casa sul php non te li fai da solo? dire "devo ordinare un array senza usare le funzioni native" č uguale a dire "la professoressa mi ha detto di fare questo ma non mi va e spero che qualcuno mi dia la pappa pronta"

detto questo, ecco la pappa pronta

fonte: http://en.wikipedia.org/wiki/Bubble_sort

Codice PHP:

$mioarray 
= array(
=> -20,
=> 10,
=> -10,
=> 30,
=> 20,
=> 1,
=> 12,
);

//risultato da ottenre:
/*

$mioarray = array(
0 => -20,
2 => -10,
5 => 1,
1 => 10,
6 => 12,
4 => 20,
3 => 30
);

*/

//ordinamento mantenendo le chiavi
function bubbleSort(&$A){

    
$n count($A);
    
    
$appoggio = array();
    foreach(
$A as $key => $value)
        
$appoggio[] = array($key,$value);
    
    
$isGreaterThen = function($a,$b){
        return 
$a[1] > $b[1];
    };
    
    
$swap = function($f,$t) use(&$appoggio){
        
$tmp $appoggio[$t];
        
$appoggio[$t] = $appoggio[$f];
        
$appoggio[$f] = $tmp;
    };
    
    while(
$n>0){
    
        
$newn 0;
        for(
$i 1$i<$n$i++){
            
            if(
$isGreaterThen($appoggio[$i-1],$appoggio[$i])){
                
$swap($i-1,$i);
                
$newn $i;
            }
            
        }
        
$n $newn;
    }
    
    
//ricostruisco
    
$A = array();
    foreach(
$appoggio as $el)
        
$A[$el[0]] = $el[1];
}


bubbleSort($mioarray);
print_r($mioarray);