Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_assoc_variation8.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test array_intersect_assoc() function : usage variations - assoc array with diff values for 'arr2' argument
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_intersect_assoc(array $arr1, array $arr2 [, array $...])
                      6:  * Description: Returns the entries of arr1 that have values which are present in all the other arguments.
                      7:  * Keys are used to do more restrictive check
                      8:  * Source code: ext/standard/array.c
                      9: */
                     10: 
                     11: /*
                     12:  * Testing the functionality of array_intersect_assoc() by passing different
                     13:  * associative arrays having different possible values to $arr2 argument.
                     14:  * The $arr1 argument passed is a fixed array.
                     15: */
                     16: 
                     17: echo "*** Testing array_intersect_assoc() : assoc array with diff values to \$arr2 argument ***\n";
                     18: 
                     19: // get an unset variable
                     20: $unset_var = 10;
                     21: unset ($unset_var);
                     22: 
                     23: // get a resource variable
                     24: $fp = fopen(__FILE__, "r");
                     25: 
                     26: // get a class
                     27: class classA
                     28: {
                     29:   public function __toString(){
                     30:     return "Class A object";
                     31:   }
                     32: }
                     33: 
                     34: // get a heredoc string
                     35: $heredoc = <<<EOT
                     36: Hello world
                     37: EOT;
                     38: 
                     39: // different variations of associative arrays to be passed to $arr2 argument
                     40: $arrays = array (
                     41: 
                     42:        // empty array
                     43: /*1*/  array(),
                     44: 
                     45:        // arrays with integer values
                     46:        array('0' => 0),
                     47:        array("1" => 1),
                     48:        array("one" => 1, 'two' => 2, "three" => 3, 4 => 4),
                     49: 
                     50:        // arrays with float values
                     51: /*5*/  array("float" => 2.3333),
                     52:        array("f1" => 1.2, 'f2' => 3.33, 3 => 4.89999922839999, 'f4' => 33333333.333),
                     53: 
                     54:        // arrays with string values
                     55: /*7*/  array(111 => "\tHello", "red" => "col\tor", 2 => "\v\fworld", 3.3 =>  "pen\n"),
                     56:        array(111 => '\tHello', "red" => 'col\tor', 2 => '\v\fworld', 3.3 =>  'pen\n'),
                     57:        array(1 => "hello", "heredoc" => $heredoc),
                     58: 
                     59:        // array with object, unset variable and resource variable
                     60: /*10*/ array(11 => new classA(), "unset" => @$unset_var, "resource" => $fp),
                     61: 
                     62:        // array with mixed values
                     63: /*11*/ array(1 => 'hello', 2 => new classA(), 222 => "fruit", 
                     64:              'resource' => $fp, "int" => 133, "float" => 444.432, 
                     65:              "unset" => @$unset_var, "heredoc" => $heredoc)
                     66: );
                     67: 
                     68: // array to be passsed to $arr1 argument
                     69: $arr1 = array(0 => "0", 1, "two" => 2, "float" => 2.3333, "f1" => 1.2,
                     70:               "f4" => 33333333.333, 111 => "\tHello", 3.3 => 'pen\n', '\v\fworld',
                     71:               "heredoc" => "Hello world", 11 => new classA(), "resource" => $fp,
                     72:               "int" => 133, 222 => "fruit");
                     73: 
                     74: // loop through each sub-array within $arrrays to check the behavior of array_intersect_assoc()
                     75: $iterator = 1;
                     76: foreach($arrays as $arr2) {
                     77:   echo "-- Iteration $iterator --\n";
                     78: 
                     79:   // Calling array_intersect_assoc() with default arguments
                     80:   var_dump( array_intersect_assoc($arr1, $arr2) );
                     81: 
                     82:   // Calling array_intersect_assoc() with more arguments.
                     83:   // additional argument passed is the same as $arr1 argument
                     84:   var_dump( array_intersect_assoc($arr1, $arr2, $arr1) );
                     85:   $iterator++;
                     86: }
                     87: 
                     88: // close the file resource used
                     89: fclose($fp);
                     90: 
                     91: echo "Done";
                     92: ?>
                     93: --EXPECTF--
                     94: *** Testing array_intersect_assoc() : assoc array with diff values to $arr2 argument ***
                     95: -- Iteration 1 --
                     96: array(0) {
                     97: }
                     98: array(0) {
                     99: }
                    100: -- Iteration 2 --
                    101: array(1) {
                    102:   [0]=>
                    103:   string(1) "0"
                    104: }
                    105: array(1) {
                    106:   [0]=>
                    107:   string(1) "0"
                    108: }
                    109: -- Iteration 3 --
                    110: array(1) {
                    111:   [1]=>
                    112:   int(1)
                    113: }
                    114: array(1) {
                    115:   [1]=>
                    116:   int(1)
                    117: }
                    118: -- Iteration 4 --
                    119: array(1) {
                    120:   ["two"]=>
                    121:   int(2)
                    122: }
                    123: array(1) {
                    124:   ["two"]=>
                    125:   int(2)
                    126: }
                    127: -- Iteration 5 --
                    128: array(1) {
                    129:   ["float"]=>
                    130:   float(2.3333)
                    131: }
                    132: array(1) {
                    133:   ["float"]=>
                    134:   float(2.3333)
                    135: }
                    136: -- Iteration 6 --
                    137: array(2) {
                    138:   ["f1"]=>
                    139:   float(1.2)
                    140:   ["f4"]=>
                    141:   float(33333333.333)
                    142: }
                    143: array(2) {
                    144:   ["f1"]=>
                    145:   float(1.2)
                    146:   ["f4"]=>
                    147:   float(33333333.333)
                    148: }
                    149: -- Iteration 7 --
                    150: array(1) {
                    151:   [111]=>
                    152:   string(6) "  Hello"
                    153: }
                    154: array(1) {
                    155:   [111]=>
                    156:   string(6) "  Hello"
                    157: }
                    158: -- Iteration 8 --
                    159: array(1) {
                    160:   [3]=>
                    161:   string(5) "pen\n"
                    162: }
                    163: array(1) {
                    164:   [3]=>
                    165:   string(5) "pen\n"
                    166: }
                    167: -- Iteration 9 --
                    168: array(1) {
                    169:   ["heredoc"]=>
                    170:   string(11) "Hello world"
                    171: }
                    172: array(1) {
                    173:   ["heredoc"]=>
                    174:   string(11) "Hello world"
                    175: }
                    176: -- Iteration 10 --
                    177: array(2) {
                    178:   [11]=>
                    179:   object(classA)#%d (0) {
                    180:   }
                    181:   ["resource"]=>
                    182:   resource(%d) of type (stream)
                    183: }
                    184: array(2) {
                    185:   [11]=>
                    186:   object(classA)#%d (0) {
                    187:   }
                    188:   ["resource"]=>
                    189:   resource(%d) of type (stream)
                    190: }
                    191: -- Iteration 11 --
                    192: array(4) {
                    193:   ["heredoc"]=>
                    194:   string(11) "Hello world"
                    195:   ["resource"]=>
                    196:   resource(%d) of type (stream)
                    197:   ["int"]=>
                    198:   int(133)
                    199:   [222]=>
                    200:   string(5) "fruit"
                    201: }
                    202: array(4) {
                    203:   ["heredoc"]=>
                    204:   string(11) "Hello world"
                    205:   ["resource"]=>
                    206:   resource(%d) of type (stream)
                    207:   ["int"]=>
                    208:   int(133)
                    209:   [222]=>
                    210:   string(5) "fruit"
                    211: }
                    212: Done

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