Return to array_diff_variation3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_diff() function : usage variations - array with different data types as values 3: --FILE-- 4: <?php 5: /* Prototype : array array_diff(array $arr1, array $arr2 [, array ...]) 6: * Description: Returns the entries of $arr1 that have values which are not 7: * present in any of the others arguments. 8: * Source code: ext/standard/array.c 9: */ 10: 11: /* 12: * Test how array_diff() compares indexed arrays containing different 13: * data types as values in place of $arr1 14: */ 15: 16: echo "*** Testing array_diff() : usage variations ***\n"; 17: 18: // Initialise function arguments not being substituted (if any) 19: $array = array(1, 2); 20: 21: //get an unset variable 22: $unset_var = 10; 23: unset ($unset_var); 24: 25: //get heredoc 26: $heredoc = <<<END 27: This is a heredoc 28: END; 29: 30: //array of values to iterate over 31: $values = array( 32: 33: /*1*/"empty array" => array(), 34: 35: /*2*/ 36: "int" => array( 37: // int data 38: 0, 39: 1, 40: 12345, 41: -2345), 42: 43: /*3*/ 44: "float" => array( 45: // float data 46: 10.5, 47: -10.5, 48: 12.3456789000e10, 49: 12.3456789000E-10, 50: .5), 51: 52: /*4*/ 53: "null" => array( 54: // null data 55: NULL, 56: null), 57: 58: /*5*/ 59: "boolean" => array( 60: // boolean data 61: true, 62: false, 63: TRUE, 64: FALSE), 65: 66: /*6*/ 67: "empty" => array( 68: // empty data 69: "", 70: ''), 71: 72: /*7*/ 73: "string" => array( 74: // string data 75: "string", 76: 'string', 77: $heredoc), 78: 79: /*8*/ 80: "binary" => array( 81: // binary data 82: b"binary", 83: (binary)"binary"), 84: 85: /*9*/ 86: "undefined" => array( 87: // undefined data 88: @$undefined_var), 89: 90: /*10*/ 91: "unset" => array( 92: // unset data 93: @$unset_var) 94: ); 95: 96: // loop through each element of the array for arr1 97: $iterator = 1; 98: foreach($values as $value) { 99: echo "\n Iteration: $iterator \n"; 100: var_dump( array_diff($value, $array) ); 101: $iterator++; 102: }; 103: 104: echo "Done"; 105: ?> 106: --EXPECTF-- 107: *** Testing array_diff() : usage variations *** 108: 109: Iteration: 1 110: array(0) { 111: } 112: 113: Iteration: 2 114: array(3) { 115: [0]=> 116: int(0) 117: [2]=> 118: int(12345) 119: [3]=> 120: int(-2345) 121: } 122: 123: Iteration: 3 124: array(5) { 125: [0]=> 126: float(10.5) 127: [1]=> 128: float(-10.5) 129: [2]=> 130: float(123456789000) 131: [3]=> 132: float(1.23456789E-9) 133: [4]=> 134: float(0.5) 135: } 136: 137: Iteration: 4 138: array(2) { 139: [0]=> 140: NULL 141: [1]=> 142: NULL 143: } 144: 145: Iteration: 5 146: array(2) { 147: [1]=> 148: bool(false) 149: [3]=> 150: bool(false) 151: } 152: 153: Iteration: 6 154: array(2) { 155: [0]=> 156: string(0) "" 157: [1]=> 158: string(0) "" 159: } 160: 161: Iteration: 7 162: array(3) { 163: [0]=> 164: string(6) "string" 165: [1]=> 166: string(6) "string" 167: [2]=> 168: string(17) "This is a heredoc" 169: } 170: 171: Iteration: 8 172: array(2) { 173: [0]=> 174: string(6) "binary" 175: [1]=> 176: string(6) "binary" 177: } 178: 179: Iteration: 9 180: array(1) { 181: [0]=> 182: NULL 183: } 184: 185: Iteration: 10 186: array(1) { 187: [0]=> 188: NULL 189: } 190: Done