arrays - PHP unique numbers and replace? -


we know rand(x,y) in php, not work unique numbers.

question 1: how can create 5 unique numbers 1-52, , save them array?

lets array are:

$foo = array(1,2,3,4,5); 

and have secound array few of numbers in $foo:

$egg = array(1,5,4); 

question 2: how can make function take , replace every number in $foo new unique numbers, except numbers $egg? ( make 2,3 new unique numbers).

(aka: values $egg still there in $foo every other value new)

1 question:

simply create range() want unique random numbers. shuffle() array , take array_slice() it, this:

<?php      $range = range(1, 52);     shuffle($range);     $randomnumbers = array_slice($range, 0, 5);      print_r($randomnumbers);  ?> 

possible output:

array ( [0] => 25 [1] => 32 [2] => 7 [3] => 52 [4] => 35 ) 

2 question:

first difference both arrays array_diff(). after create many random numbers range $diff has elements. exclude numbers in $foo array already, don't duplicates again.

then can array_combine() numbers want replace random numbers.

and after go through array elements array_map() , check if has replace or not, if yes return replaced number.

<?php      $range = range(1, 52);     $foo = [1, 2, 3, 4, 5];     $egg = [1, 5, 4];      $diff = array_diff($foo, $egg);     $range = array_diff($range, $foo);     shuffle($range);      $replacement = array_combine($diff, array_slice($range, 0, count($diff)));     $foo = array_map(function($v)use($replacement){         if(isset($replacement[$v]))             return $replacement[$v];         return $v;     }, $foo);      print_r($foo);  ?> 

possible output:

array ( [0] => 1 [1] => 27 [2] => 10 [3] => 4 [4] => 5 ) 

Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -