[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