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