Return to array_diff_variation4.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 $arr2 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 $arr2 97: $iterator = 1; 98: foreach($values as $value) { 99: echo "\n Iteration: $iterator \n"; 100: var_dump( array_diff($array, $value) ); 101: $iterator++; 102: }; 103: 104: echo "Done"; 105: ?> 106: --EXPECTF-- 107: *** Testing array_diff() : usage variations *** 108: 109: Iteration: 1 110: array(2) { 111: [0]=> 112: int(1) 113: [1]=> 114: int(2) 115: } 116: 117: Iteration: 2 118: array(1) { 119: [1]=> 120: int(2) 121: } 122: 123: Iteration: 3 124: array(2) { 125: [0]=> 126: int(1) 127: [1]=> 128: int(2) 129: } 130: 131: Iteration: 4 132: array(2) { 133: [0]=> 134: int(1) 135: [1]=> 136: int(2) 137: } 138: 139: Iteration: 5 140: array(1) { 141: [1]=> 142: int(2) 143: } 144: 145: Iteration: 6 146: array(2) { 147: [0]=> 148: int(1) 149: [1]=> 150: int(2) 151: } 152: 153: Iteration: 7 154: array(2) { 155: [0]=> 156: int(1) 157: [1]=> 158: int(2) 159: } 160: 161: Iteration: 8 162: array(2) { 163: [0]=> 164: int(1) 165: [1]=> 166: int(2) 167: } 168: 169: Iteration: 9 170: array(2) { 171: [0]=> 172: int(1) 173: [1]=> 174: int(2) 175: } 176: 177: Iteration: 10 178: array(2) { 179: [0]=> 180: int(1) 181: [1]=> 182: int(2) 183: } 184: Done