Count recursive array.
This function is able to count a recursive array. The depth can be defined as well as if the parent should be counted. For instance, if $depth is defined and $count_parent is set to false, only the level of the defined depth will be counted.
beans_count_recursive( string $array, int|bool $depth = false, bool $count_parent = true )
Return: (int) Number of entries found.
Parameters
| Name | Type | Required | Default | Description | 
|---|---|---|---|---|
| $array | string | true | - | The array. | 
| $depth | int|bool | false | false | Depth until which the entries should be counted. | 
| $count_parent | bool | false | true | Whether the parent should be counted or not. | 
Source
function beans_count_recursive( $array, $depth = false, $count_parent = true ) {
	if ( ! is_array( $array ) ) {
		return 0;
	}
	if ( 1 === $depth ) {
		return count( $array );
	}
	if ( ! is_numeric( $depth ) ) {
		return count( $array, COUNT_RECURSIVE );
	}
	$count = $count_parent ? count( $array ) : 0;
	foreach ( $array as $_array ) {
		if ( is_array( $_array ) ) {
			$count += beans_count_recursive( $_array, $depth - 1, $count_parent );
		} else {
			$count += 1;
		}
	}
	return $count;
}
