Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_assoc_variation8.phpt, revision 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>