diff --git a/includes/common.inc b/includes/common.inc index fbd68270416..7468f817cce 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -3076,10 +3076,18 @@ function element_child($key) { } /** - * Get keys of a structured array tree element that are not properties (i.e., do not begin with '#'). + * Get keys of a structured array tree element that are not properties + * (i.e., do not begin with '#'). */ function element_children($element) { - return array_filter(array_keys((array) $element), 'element_child'); + $results = array(); + foreach ((array) $element as $key => $value) { + // Inlined call to element_child() for performance reasons. + if (!isset($key[0]) || $key[0] != '#') { + $results[] = $key; + } + } + return $results; } /**