note 126469 added to function.array-rand

From: Date: Thu, 30 Sep 2021 19:45:16 +0000
Subject: note 126469 added to function.array-rand
Groups: php.notes 
Request: Send a blank email to php-notes+get-217020@lists.php.net to get a copy of this message
array_rand () takes a random value without ever being able to go back in its choice of random value. A simple example: I decide to mix an array of 10 entries to retrieve 3 values. This choice will give increasing and random values. $myarray = range(1,10); $pm = array_rand($myarray,3); // $pm return array(0->0,1->6,2->8) But if I decide to shuffle an array of 10 entries to get 10 entries, array_rand () will choose to assign a value to each return value and therefore the return array will not be random. $gm = array_rand($myarray,count($myarray)); // $gm not random array(0->0,1->1,2->2,3->3,4->4,5->5,6->6,7->7,8->8,9->9) The easiest way to have a truly random value: either use array_rand () in a loop of 1 value at a time $deg = range(-60,60); $size = range(16,64); $color = ["blue","red","green","pink","orange","purple","grey","darkgreen","darkkhaki"]; $i = 0; $longueur = 10; do{ ++$i; printf("<span style='transform: rotateZ(%ddeg); display: inline-block;font-size: %spx; color:%s'>%s</span>", $deg[array_rand($deg)], $size[array_rand($size)], $color[array_rand($color)], $alnum[array_rand($alnum)]); }while($i < $longueur); ------------------ or simply use shuffle () to shuffle the array really randomly. ---- Server IP: 45.112.84.4 Probable Submitter: 45.112.85.242 (proxied: 37.173.242.1) ---- Manual Page -- https://php.net/manual/en/function.array-rand.php Edit -- https://main.php.net/note/edit/126469 Del: integrated -- https://main.php.net/note/delete/126469/integrated Del: useless -- https://main.php.net/note/delete/126469/useless Del: bad code -- https://main.php.net/note/delete/126469/bad+code Del: spam -- https://main.php.net/note/delete/126469/spam Del: non-english -- https://main.php.net/note/delete/126469/non-english Del: in docs -- https://main.php.net/note/delete/126469/in+docs Del: other reasons-- https://main.php.net/note/delete/126469 Reject -- https://main.php.net/note/reject/126469 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#217020) next »