Recursive Method To Create Unique Random Number


I’ve got to make a unique random number as part of a program, I was thinking that a recursive method might be up to the job but seeing as I’ve not messed with recursion I was hoping for advice.

This is what I’ve got:

    protected $items = array();

    public function create_ref() {
        $ref_id = rand();
        if (in_array($ref_id, $this->items)) {
            return $ref_id;

It seems to work, but I was hoping that someone might have done this kind of thing before and either reassure me that I’m not creating a bug or point me in the right direction.



How many numbers you want to create and how many digits you want ? Is it only number or it can also be alphanumeric?

I wouldn’t use recursion for this.

Me too! I think something like below is enough but you have to be clear about how many numbers you want to create:

protected $items = array(); 
public function create_ref($number = 10) { 
	for($i = 0; $i < $number; $i++){
		$ref_id = rand();
		// check if the same number already in the array or not.
		if (!in_array($ref_id, $this->items)) {
			$this->items[] = $ref_id; // add in the array.

Hope you can adjust it for your requirement!