Diff Revisions 18 vs 19 for /trunk/Php/array/array_rand.php

Diff revisions: vs.
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 />