/* }}} */
+/* {{{ proto bool key_exists(mixed key, array search)
+ Checks if the given key or index exists in the array */
+PHP_FUNCTION(key_exists)
+{
+ zval **key, /* key to check for */
+ **array; /* array to check in */
+
+ if (ZEND_NUM_ARGS() != 2 ||
+ zend_get_parameters_ex(ZEND_NUM_ARGS(), &key, &array) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ if (Z_TYPE_PP(array) != IS_ARRAY && Z_TYPE_PP(array) != IS_OBJECT) {
+ php_error(E_WARNING, "Wrong datatype for second argument in call to %s", get_active_function_name());
+ RETURN_FALSE;
+ }
+
+ switch (Z_TYPE_PP(key)) {
+ case IS_STRING:
+ if (zend_hash_exists(HASH_OF(*array), Z_STRVAL_PP(key), Z_STRLEN_PP(key)+1)) {
+ RETURN_TRUE;
+ }
+ RETURN_FALSE;
+
+ case IS_LONG:
+ if (zend_hash_index_exists(HASH_OF(*array), Z_LVAL_PP(key))) {
+ RETURN_TRUE;
+ }
+ RETURN_FALSE;
+
+ default:
+ php_error(E_WARNING, "Wrong datatype for first argument in call to %s", get_active_function_name());
+ RETURN_FALSE;
+ }
+
+}
+/* }}} */
+
/*
* Local variables:
* tab-width: 4
PHP_FE(array_sum, NULL)
PHP_FE(array_filter, NULL)
PHP_FE(array_map, NULL)
+ PHP_FE(key_exists, NULL)
/* aliases from array.c */
PHP_FALIAS(pos, current, first_arg_force_ref)
PHP_FUNCTION(array_sum);
PHP_FUNCTION(array_filter);
PHP_FUNCTION(array_map);
+PHP_FUNCTION(key_exists);
HashTable* php_splice(HashTable *, int, int, zval ***, int, HashTable **);
PHPAPI void php_array_merge(HashTable *dest, HashTable *src, int recursive);