diff --git a/reference/array/functions/array-diff-key.xml b/reference/array/functions/array-diff-key.xml
new file mode 100644
index 0000000000..22471c4cbe
--- /dev/null
+++ b/reference/array/functions/array-diff-key.xml
@@ -0,0 +1,102 @@
+
+
+
+
+ array_diff_key
+ Computes the difference of arrays using keys for comparison
+
+
+ Description
+
+ arrayarray_diff_key
+ arrayarray1
+ arrayarray2
+ array ...
+
+
+ array_diff_key returns an array
+ containing all the values of array1
+ that have keys that are not present in any of the other arguments.
+ Note that the associativity is preserved. This function is like
+ array_diff except the comparison is done on the
+ keys instead of the values.
+
+
+
+ array_diff_key example
+
+ 1, 'red' => 2, 'green' => 3, 'purple' => 4);
+$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
+
+var_dump(array_diff_key($array1, $array2));
+?>
+]]>
+
+
+ The printout of the above program will be:
+
+
+
+ int(2)
+ ["purple"]=>
+ int(4)
+}
+]]>
+
+
+
+
+ The two keys from the key => value pairs are
+ considered equal only if
+ (string) $key1 === (string) $key2 . In other words
+ a strict type check is executed so the string representation must be
+ the same.
+
+
+
+ Please note that this function only checks one dimension of a n-dimensional
+ array. Of course you can check deeper dimensions by using
+ array_diff_key($array1[0], $array2[0]);.
+
+
+
+ See also array_diff,
+ array_udiff
+ array_diff_assoc,
+ array_diff_uassoc,
+ array_udiff_assoc,
+ array_udiff_uassoc,
+ array_diff_ukey,
+ array_intersect,
+ array_intersect_assoc,
+ array_intersect_uassoc,
+ array_intersect_key and
+ array_intersect_ukey.
+
+
+
+
+
diff --git a/reference/array/functions/array-diff-ukey.xml b/reference/array/functions/array-diff-ukey.xml
new file mode 100644
index 0000000000..be10995482
--- /dev/null
+++ b/reference/array/functions/array-diff-ukey.xml
@@ -0,0 +1,119 @@
+
+
+
+
+ array_diff_ukey
+ Computes the difference of arrays using a callback function on the keys for comparison
+
+
+ Description
+
+ arrayarray_diff_ukey
+ arrayarray1
+ arrayarray2
+ array ...
+ callbackkey_compare_func
+
+
+ array_diff_ukey returns an array
+ containing all the values of array1
+ that have keys that are not present in any of the other arguments.
+ Note that the associativity is preserved. This function is like
+ array_diff except the comparison is done on the
+ keys instead of the values.
+
+
+ This comparison is done by a user supplied callback function.
+ It must return an integer less than, equal to, or greater than zero if the
+ first key is considered to be respectively less than, equal to, or
+ greater than the second.
+
+
+
+ array_diff_ukey example
+
+ $key2)
+ return 1;
+ else
+ return -1;
+}
+
+$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
+$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
+
+var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
+?>
+]]>
+
+
+ The printout of the above program will be:
+
+
+
+ int(2)
+ ["purple"]=>
+ int(4)
+}
+]]>
+
+
+
+
+ The two keys from the key => value pairs are
+ considered equal only if
+ (string) $key1 === (string) $key2 . In other words
+ a strict type check is executed so the string representation must be
+ the same.
+
+
+
+ Please note that this function only checks one dimension of a n-dimensional
+ array. Of course you can check deeper dimensions by using
+ array_diff_ukey($array1[0], $array2[0], 'callback_func');.
+
+
+
+ See also array_diff,
+ array_udiff
+ array_diff_assoc,
+ array_diff_uassoc,
+ array_udiff_assoc,
+ array_udiff_uassoc,
+ array_diff_key,
+ array_intersect,
+ array_intersect_assoc,
+ array_intersect_uassoc,
+ array_intersect_key and
+ array_intersect_ukey.
+
+
+
+
+
diff --git a/reference/array/functions/array-intersect-key.xml b/reference/array/functions/array-intersect-key.xml
new file mode 100644
index 0000000000..9f5f2e85e6
--- /dev/null
+++ b/reference/array/functions/array-intersect-key.xml
@@ -0,0 +1,100 @@
+
+
+
+
+ array_intersect_key
+ Computes the intersection of arrays using keys for comparison
+
+
+ Description
+
+ arrayarray_intersect_key
+ arrayarray1
+ arrayarray2
+ array ...
+
+
+ array_intersect_key returns an array
+ containing all the values of array1
+ which have matching keys that are present in all the arguments.
+
+
+
+ array_intersect_key example
+
+ 1, 'red' => 2, 'green' => 3, 'purple' => 4);
+$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
+
+var_dump(array_intersect_key($array1, $array2));
+?>
+]]>
+
+
+ The printout of the above program will be:
+
+
+
+ int(1)
+ ["green"]=>
+ int(3)
+})
+]]>
+
+
+
+
+ In our example you see that only the keys 'blue'
+ and 'green' are present in both arrays and thus
+ returned. Also notice that the values for the keys
+ 'blue' and 'green' differ between
+ the two arrays. A match still occurs because only the keys are checked.
+ The values returned are those of array1.
+
+
+ The two keys from the key => value pairs are
+ considered equal only if
+ (string) $key1 === (string) $key2 . In other words
+ a strict type check is executed so the string representation must be
+ the same.
+
+
+ See also array_diff,
+ array_udiff
+ array_diff_assoc,
+ array_diff_uassoc,
+ array_udiff_assoc,
+ array_udiff_uassoc,
+ array_diff_key,
+ array_diff_ukey,
+ array_intersect,
+ array_intersect_assoc,
+ array_intersect_uassoc and
+ array_intersect_ukey.
+
+
+
+
+
diff --git a/reference/array/functions/array-intersect-ukey.xml b/reference/array/functions/array-intersect-ukey.xml
new file mode 100644
index 0000000000..27da08cbd1
--- /dev/null
+++ b/reference/array/functions/array-intersect-ukey.xml
@@ -0,0 +1,117 @@
+
+
+
+
+ array_intersect_ukey
+ Computes the intersection of arrays using a callback function on the keys for comparison
+
+
+ Description
+
+ arrayarray_intersect_ukey
+ arrayarray1
+ arrayarray2
+ array...
+ callbackkey_compare_func
+
+
+ array_intersect_ukey returns an array
+ containing all the values of array1
+ which have matching keys that are present in all the arguments.
+
+
+ This comparison is done by a user supplied callback function.
+ It must return an integer less than, equal to, or greater than zero if the
+ first key is considered to be respectively less than, equal to, or
+ greater than the second.
+
+
+
+ array_intersect_ukey example
+
+ $key2)
+ return 1;
+ else
+ return -1;
+}
+
+$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
+$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
+
+var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
+?>
+]]>
+
+
+ The printout of the above program will be:
+
+
+
+ int(1)
+ ["green"]=>
+ int(3)
+})
+]]>
+
+
+
+
+ In our example you see that only the keys 'blue'
+ and 'green' are present in both arrays and thus
+ returned. Also notice that the values for the keys
+ 'blue' and 'green' differ between
+ the two arrays. A match still occurs because only the keys are checked.
+ The values returned are those of array1.
+
+
+ The two keys from the key => value pairs are
+ considered equal only if
+ (string) $key1 === (string) $key2 . In other words
+ a strict type check is executed so the string representation must be
+ the same.
+
+
+ See also array_diff,
+ array_udiff
+ array_diff_assoc,
+ array_diff_uassoc,
+ array_udiff_assoc,
+ array_udiff_uassoc,
+ array_diff_key,
+ array_diff_ukey,
+ array_intersect,
+ array_intersect_assoc,
+ array_intersect_uassoc and
+ array_intersect_key.
+
+
+
+
+