summaryrefslogtreecommitdiff
path: root/ext/standard/basic_functions.c
diff options
context:
space:
mode:
authorDerick Rethans <derick@php.net>2001-12-29 20:59:59 +0000
committerDerick Rethans <derick@php.net>2001-12-29 20:59:59 +0000
commitcef0a461f941328880415cd7e2b2be745dca162f (patch)
tree3cec04ebfcb757a02a9616a2597db9fd4cf7ae98 /ext/standard/basic_functions.c
parent211d712c5910dc8a21e364d53323d9aad0aa3d7e (diff)
downloadphp-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.c26
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)