Numeri random multipli di un certo numero con PHP

15 Giu

Out Of Date Warning

Questo post è stato pubblicato più di 2 anni fa (il 15 giugno 2012). Le idee vanno avanti velocemente, le prospettive cambiano quindi i contenuti potrebbero non essere aggiornati. Ti prego di tenere in considerazione questo, e di verificare le informazioni tecniche presenti nell'articolo prima di farne affidamento per i tuoi scopi.

Oggi ho avuto la necessità per un sito di e-commerce di scrivere una procedura di creazione sconti automatici.
Semplificando molto, quello che deve fare il programma è, applicare a certi prodotti uno sconto casuale (entro un certo range) ma che sia però multiplo di 5, quindi 5-10-15-20% etc..

La funzione rand() di PHP non è sufficiente in quanto non mi permette di gestire il multiplo, ma accetta solo due parametri (min e max) e che io sappia non c’è niente di built-in nel linguaggio che ottenga questo risultato.
Ecco come ho risolto:

Ora i parametri sono tre, ho aggiunto il multiplo. Il fusso della funzione è il seguente:

  1. Genero con rand il numero casuale
  2. Recupero il resto della divisione del numero appena generato con il parametro $multiple
  3. Poi in base al valore del resto lo aggiungo o lo sottraggo al numero random (simulando quindi anche una sorta di arrotondamento)

Se avete qualche altra idea (magari più “geniele”) su come raggiungere lo stesso risultato fatemelo sapere. 😉

Lascia un commento