Diff Revisions 18 vs 19 for /trunk/Php/array/array_rand.php
| 18 | 19 | <- Revisions | |
|
Diff lines for: Rev 18 : Lines 3 -> 14 Rev 19 : Lines 3 -> 15 |
|||
| 3 | 3 | <?php | |
| 4 | 4 | $arrItem = str_split('abcdefghi',1); | |
| 5 | 5 | ||
| 6 | - | function oldRandom($arrItem, $nb) | |
| 6 | + | function oldRandom($arrItem) | |
| 7 | 7 | { | |
| 8 | + | $itemList=array(); | |
| 8 | 9 | if (isset($arrItem)) { | |
| 9 | 10 | $items_selected_nbr = sizeof($arrItem); | |
| 10 | 11 | ||
| 11 | - | if ($items_selected_nbr) { | |
| 12 | + | if ($items_selected_nbr>2) { | |
| 12 | 13 | ||
| 13 | 14 | srand((double)microtime() * 1000000); | |
| 14 | 15 | $itemList[0] = rand(0,($items_selected_nbr) - 1); | |
|
Diff lines for: Rev 18 : Lines 35 -> 66 Rev 19 : Lines 36 -> 59 |
|||
| 35 | 36 | } | |
| 36 | 37 | ||
| 37 | 38 | ||
| 38 | - | function newRandom($arrItem, $nb) | |
| 39 | + | function newRandom($arrItem) | |
| 39 | 40 | { | |
| 40 | 41 | ||
| 41 | - | $arrItemKeyList = array_rand($arrItem, 3); | |
| 42 | - | $newarr = array(); | |
| 43 | - | $newarr[]=$arrItem[$arrItemKeyList[0]]; | |
| 44 | - | $newarr[]=$arrItem[$arrItemKeyList[1]]; | |
| 45 | - | $newarr[]=$arrItem[$arrItemKeyList[2]]; | |
| 46 | - | $itemList = $newarr; | |
| 47 | - | return $itemList; | |
| 42 | + | return array_intersect_key($arrItem, array_flip(array_rand($arrItem, min(3,count($arrItem))))); | |
| 43 | + | ||
| 48 | 44 | } | |
| 49 | 45 | ||
| 50 | 46 | ?> | |
| 51 | 47 | </pre><h2>Je teste</h2><pre> | |
| 52 | 48 | <?php | |
| 53 | 49 | ||
| 54 | - | $nb = 3; | |
| 55 | - | var_export(oldRandom($arrItem, $nb)); | |
| 56 | - | var_export(newRandom($arrItem, $nb)); | |
| 50 | + | var_export(oldRandom($arrItem)); | |
| 51 | + | var_export(newRandom($arrItem)); | |
| 57 | 52 | ||
| 58 | 53 | ?> | |
| 59 | 54 | </pre><h2>J'en demande plus que disponible</h2><pre> | |
| 60 | 55 | <?php | |
| 61 | - | $nb = 4; | |
| 62 | - | var_export(oldRandom(array_slice($arrItem,0,3), $nb)); | |
| 63 | - | var_export(newRandom(array_slice($arrItem,0,3), $nb)); | |
| 56 | + | var_export(oldRandom(array_slice($arrItem,0,2))); | |
| 57 | + | var_export(newRandom(array_slice($arrItem,0,2))); | |
| 64 | 58 | ?> | |
| 65 | 59 | </pre> | |
| 66 | 60 | <hr /> | |
View this file contents
View the full history
Commits for ZF_experiences:/trunk/Php/array/array_rand.php