diff options
| author | Derick Rethans <derick@php.net> | 2001-12-29 20:59:59 +0000 |
|---|---|---|
| committer | Derick Rethans <derick@php.net> | 2001-12-29 20:59:59 +0000 |
| commit | cef0a461f941328880415cd7e2b2be745dca162f (patch) | |
| tree | 3cec04ebfcb757a02a9616a2597db9fd4cf7ae98 /ext/standard/basic_functions.c | |
| parent | 211d712c5910dc8a21e364d53323d9aad0aa3d7e (diff) | |
| download | php-git-cef0a461f941328880415cd7e2b2be745dca162f.tar.gz | |
- Added extra parameter to count() that recursively counts elements in an
array and added is_array_multidimensional(). (patch by Vlad Bosinceanu
<glipy@fx.ro>)
Diffstat (limited to 'ext/standard/basic_functions.c')
| -rw-r--r-- | ext/standard/basic_functions.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 5d637198e7..9337df331b 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -520,6 +520,7 @@ function_entry basic_functions[] = { PHP_FE(is_numeric, NULL) PHP_FE(is_string, NULL) PHP_FE(is_array, NULL) + PHP_FE(is_array_multidimensional, NULL) PHP_FE(is_object, NULL) PHP_FE(is_scalar, NULL) PHP_FE(is_callable, third_arg_force_ref) @@ -1633,6 +1634,31 @@ PHP_FUNCTION(is_array) } /* }}} */ +/* {{{ proto bool is_array_multidimensional(mixed var) + Returns true if variable is a multidimensional array */ +PHP_FUNCTION(is_array_multidimensional) +{ + zval *var, **element; + int i = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &var) == FAILURE) { + return; + } + + if (Z_TYPE_P(var) == IS_ARRAY) { + while (zend_hash_num_elements (HASH_OF(var)) > i) { + if (zend_hash_index_find (Z_ARRVAL_P(var), i, (void **) &element) == SUCCESS) { + if(Z_TYPE_PP(element) == IS_ARRAY) { + RETURN_TRUE; + } + } + i++; + } + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ proto bool is_object(mixed var) Returns true if variable is an object */ PHP_FUNCTION(is_object) |
