Annotation of embedaddon/php/ext/standard/tests/array/array_rand_variation4.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test array_rand() function : usage variation - with associative arrays for 'input' parameter 
        !             3: --FILE--
        !             4: <?php
        !             5: /* Prototype  : mixed array_rand(array $input [, int $num_req])
        !             6:  * Description: Return key/keys for random entry/entries in the array 
        !             7:  * Source code: ext/standard/array.c
        !             8: */
        !             9: 
        !            10: /*
        !            11: * Test behaviour of array_rand() function when associative array is passed to
        !            12: * the 'input' parameter in the function call
        !            13: */
        !            14: 
        !            15: echo "*** Testing array_rand() : with associative arrays ***\n";
        !            16: 
        !            17: // initialise associative arrays
        !            18: $asso_arrays = array(
        !            19:     
        !            20:        // array with numeric keys
        !            21: /*1*/  array(1 => 'one', 2 => 2, 1234567890 => 'big', -1 => 'negative key',
        !            22:              2.3 => 'float key', 0 => "zero key", 0.2 => 'decimal key',
        !            23:              2e2 => 'exp key1', -2e3 => 'negative exp key'),
        !            24:       
        !            25:        // array with string keys
        !            26:        array('one' => 1, "two" => 2.0, "three" => 'three',
        !            27:              '12twelve' => 12.00, "" => 'empty string', " " => "space key"),
        !            28: 
        !            29:        // array with hexa values as keys
        !            30: /*3*/  array(0xabc => 2748, 0x12f => '303', 0xff => "255", -0xff => "-255"),
        !            31: 
        !            32:        // array with octal values as keys 
        !            33:        array(0123 => 83, 0129 => 10, 010 => "8", -0348 => "-28", 0012 => '10'),
        !            34: 
        !            35:        // array with bool values as keys
        !            36:        array(TRUE => '1', true => true, TrUe => "TRUE",
        !            37:              FALSE => '0', false => false, FaLsE => "FALSE"),
        !            38: 
        !            39:        // array with special chars as keys
        !            40: /*6*/  array('##' => "key1", '&$r' => 'key2', '!' => "key3", '<>' =>'key4',
        !            41:              "NULL" => 'key5', "\n" => 'newline as key',
        !            42:              "\t" => "tab as key", "'" => 'single quote as key',
        !            43:              '"' => 'double quote as key', "\0" => "null char as key")
        !            44: );
        !            45:        
        !            46: /* looping to test array_rand() function with different arrays having
        !            47:  * different types of keys
        !            48: */
        !            49: $counter = 1;
        !            50: foreach($asso_arrays as $input) {
        !            51:   echo "\n-- Iteration $counter --\n";
        !            52: 
        !            53:   // with default argument
        !            54:   echo"\nWith default argument\n";
        !            55:   var_dump( array_rand($input) );
        !            56: 
        !            57:   // with default and optional arguments
        !            58:   echo"\nWith num_req = 1\n";
        !            59:   var_dump( array_rand($input, 1) );  // with $num_req=1
        !            60:   echo"\nWith num_req = 2\n";
        !            61:   var_dump( array_rand($input, 2) );  // with $num_req=2
        !            62:  
        !            63:   $counter++;
        !            64: }  // end of for loop
        !            65:  
        !            66: 
        !            67: echo "Done";
        !            68: ?>
        !            69: --EXPECTREGEX--
        !            70: \*\*\* Testing array_rand\(\) : with associative arrays \*\*\*
        !            71: 
        !            72: -- Iteration 1 --
        !            73: 
        !            74: With default argument
        !            75: int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
        !            76: 
        !            77: With num_req = 1
        !            78: int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
        !            79: 
        !            80: With num_req = 2
        !            81: array\(2\) {
        !            82:   \[0\]=>
        !            83:   int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
        !            84:   \[1\]=>
        !            85:   int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
        !            86: }
        !            87: 
        !            88: -- Iteration 2 --
        !            89: 
        !            90: With default argument
        !            91: string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
        !            92: 
        !            93: With num_req = 1
        !            94: string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
        !            95: 
        !            96: With num_req = 2
        !            97: array\(2\) {
        !            98:   \[0\]=>
        !            99:   string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
        !           100:   \[1\]=>
        !           101:   string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
        !           102: }
        !           103: 
        !           104: -- Iteration 3 --
        !           105: 
        !           106: With default argument
        !           107: int\([23-]*[2570]*[345]*[58]*\)
        !           108: 
        !           109: With num_req = 1
        !           110: int\([23-]*[2570]*[345]*[58]*\)
        !           111: 
        !           112: With num_req = 2
        !           113: array\(2\) {
        !           114:   \[0\]=>
        !           115:   int\([23-]*[2570]*[345]*[58]*\)
        !           116:   \[1\]=>
        !           117:   int\([23-]*[2570]*[345]*[58]*\)
        !           118: }
        !           119: 
        !           120: -- Iteration 4 --
        !           121: 
        !           122: With default argument
        !           123: int\([18-]*[023]*[8]*\)
        !           124: 
        !           125: With num_req = 1
        !           126: int\([18-]*[023]*[8]*\)
        !           127: 
        !           128: With num_req = 2
        !           129: array\(2\) {
        !           130:   \[0\]=>
        !           131:   int\([18-]*[023]*[8]*\)
        !           132:   \[1\]=>
        !           133:   int\([18-]*[023]*[8]*\)
        !           134: }
        !           135: 
        !           136: -- Iteration 5 --
        !           137: 
        !           138: With default argument
        !           139: int\([01]\)
        !           140: 
        !           141: With num_req = 1
        !           142: int\([01]\)
        !           143: 
        !           144: With num_req = 2
        !           145: array\(2\) {
        !           146:   \[0\]=>
        !           147:   int\([01]\)
        !           148:   \[1\]=>
        !           149:   int\([01]\)
        !           150: }
        !           151: 
        !           152: -- Iteration 6 --
        !           153: 
        !           154: With default argument
        !           155: string\([0-9]*\) "[#&!N  <\n\t'"\0]*[U#$>]*[rL]*[L]*"
        !           156: 
        !           157: With num_req = 1
        !           158: string\([0-9]*\) "[#&!N  <\n\t'"\0]*[U#$>]*[rL]*[L]*"
        !           159: 
        !           160: With num_req = 2
        !           161: array\(2\) {
        !           162:   \[0\]=>
        !           163:   string\([0-9]*\) "[#&!N  <\n\t'"\0]*[U#$>]*[rL]*[L]*"
        !           164:   \[1\]=>
        !           165:   string\([0-9]*\) "[#&!N  <\n\t'"\0]*[U#$>]*[rL]*[L]*"
        !           166: }
        !           167: Done
        !           168: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>