2 /* Prototype : array array_diff_key(array arr1, array arr2 [, array ...])
3 * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
4 * Source code: ext/standard/array.c
8 class classWithToString
10 public function __toString() {
11 return "Class A object";
15 class classWithoutToString
18 <<__EntryPoint
>> function main(): void
{
19 echo "*** Testing array_diff_key() : usage variation ***\n";
21 // Initialise function arguments not being substituted (if any)
22 $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
23 $array3 = array(1, 2, 3, 4, 5);
25 //get an unset variable
30 $fp = fopen(__FILE__
, "r");
37 //array of values to iterate over
44 'int -12345' => -12345,
48 'float -10.5' => -10.5,
49 'float 12.3456789000e10' => 12.3456789000e10
,
50 'float -12.3456789000e10' => -12.3456789000e10
,
54 'uppercase NULL' => NULL,
55 'lowercase null' => null,
58 'lowercase true' => true,
59 'lowercase false' =>false,
60 'uppercase TRUE' =>TRUE,
61 'uppercase FALSE' =>FALSE,
64 'empty string DQ' => "",
65 'empty string SQ' => '',
68 'string DQ' => "string",
69 'string SQ' => 'string',
70 'mixed case string' => "sTrInG",
71 'heredoc' => $heredoc,
74 'instance of classWithToString' => new classWithToString(),
75 'instance of classWithoutToString' => new classWithoutToString(),
78 'undefined var' => @$undefined_var,
81 'unset var' => @$unset_var,
87 // loop through each element of the array for arr1
88 foreach($inputs as $key =>$value) {
90 var_dump( array_diff_key($value, $array2) );
91 var_dump( array_diff_key($value, $array2, $array3) );