[Php-it] Ordinare un array :-|

Cesare D'Amico cesare at ngi.it
Sat Jun 3 11:08:41 CEST 2006


Alle 22:13, venerdì 2 giugno 2006, Massy ha scritto:
> ma se faccio sort($arr), perdo la chiave.
> non mi serve ordinarlo E BASTA, mi serve che se c'è un valore
> precedente più basso tutti i successivi prendano quel valore.


$ref = -1; // ipotesi: tutti i valori dell'array sono positivi
for ($i = 0; $i < count($arr); $i++) {
  if ($arr[$i] >= $ref) {
    // aggiorna il valore di riferimento
    $ref = $arr[$i];
  } else {
    // valore inferiore rispetto ad uno precedente: aggiornalo
    $arr[$i] = $ref;
  }
}


Ovvero, senza fare tanti cicli: tieni in memoria il max valore trovato 
finora, se trovi qualcosa di più piccolo modifichi l'array, se trovi 
qualcosa di più grande aggiorni il valore di riferimento in memoria.


...se ho capito quello che ti serve ;)


Ciaps
      ce
-- 
Cesare D'Amico  |  Area tecnica
Gruppo Volta - web & mkt solutions
Via Leida 8 - Verona
Tel: 045 21 000 84     Fax: 045 21 000 85


More information about the Php-it mailing list