facelordgists
1/12/2016 - 3:09 AM

Random number generator that always chooses a different number each time. For WordPress

Random number generator that always chooses a different number each time. For WordPress

<?php
// For use with WordPress
// Saves the previously used number as an option named "rp_random_num"

function get_unique_random_number($range_max){
	// Get the saved number
	$saved_random_number = get_option('rp_random_num');
	if( !isset($saved_random_number) ){
		$saved_random_number = rand(0, $range_max - 1);
	}

	// Generate random number until it doesn't match 
	// the previously set number (if it exists at all)
	do {
		$random_number = rand(0, $range_max - 1);
	} while ( $random_number == $saved_random_number );

	// Set previous number for next run through
	update_option('rp_random_num', $random_number);
	
	return $random_number;
}

/** Usage **/

// define some items to randomly choose from in an array
$items = array(
	"item1",
	"item2",
	"item3",
	"item4",
	"item5",
);

// pick one of those items at random
$random_num = get_unique_random_number( count($items) );
$random_item = $items[$random_num];