The question is simple: given a C++ array (e.g. x
as in int x[10]
), how would you get the number of elements in it?
An obvious solution is the following macro (definition 1):
#define countof( array ) ( sizeof( array )/sizeof( array[0] ) )
I cannot say this isn’t correct, because it does give the right answer when you give it an array. However, the same expression gives you something bogus when you supply something that is not an array. For example, if you have
int * p;
then countof( p )
always give you 1 on a machine where an int pointer and an int have the same size (e.g. on a Win32 platform).
This macro also wrongfully accepts any object of a class that has a member function operator[]. For example, suppose you write
class IntArray {
private:
int * p;
size_t size;
public:
int & operator [] ( size_t i );
} x;
then sizeof( x )
will be the size of the x object, not the size of the buffer pointed to by x.p
. Therefore you won’t get a correct answer by countof( x )
.
So we conclude that definition 1 is not good because the compiler does not prevent you from misusing it. It fails to enforce that only an array can be passed in.
What is a better option?
Well, if we want the compiler to ensure that the parameter to countof is always an array, we have to find a context where only an array is allowed. The same context should reject any non-array expression.
Some beginners may try this (definition 2):
template <typename T, size_t N>
size_t countof( T array[N] )
{
return N;
}
They figure, this template function will accept an array of N elements and return N.
Unfortunately, this doesn’t compile because C++ treats an array parameter the same as a pointer parameter, i.e. the above definition is equivalent to:
template <typename T, size_t N>
size_t countof( T * array )
{
return N;
}
It now becomes obvious that the function body has no way of knowing what N is.
However, if a function expects an array reference, then the compiler does make sure that the size of the actual parameter matches the declaration. This means we can make definition 2 work with a minor modification (definition 3):
template <typename T, size_t N>
size_t countof( T (&array)[N] )
{
return N;
}
This countof works very well and you cannot fool it by giving it a pointer. However, it is a function, not a macro. This means you cannot use it where a compile time constant is expected. In particular, you cannot write something like:
int x[10];
int y[ 2*countof(x) ]; // twice as big as x
Can we do anything about it?
Someone (I don’t know who it is – I just saw it in a piece of code from an unknown author) came up with a clever idea: moving N from the body of the function to the return type (e.g. make the function return an array of N elements), then we can get the value of N without actually calling the function.
To be precise, we have to make the function return an array reference, as C++ does not allow you to return an array directly.
The implementation of this is:
template <typename T, size_t N>
char ( &_ArraySizeHelper( T (&array)[N] ))[N];
#define countof( array ) (sizeof( _ArraySizeHelper( array ) ))
Admittedly, the syntax looks awful. Indeed, some explanation is necessary.
First, the top-level stuff
char ( &_ArraySizeHelper( ... ))[N];
says _ArraySizeHelper
is a function that returns a reference (note the &) to a char array of N elements.
Next, the function parameter is
T (&array)[N]
which is a reference to a T array of N elements.
Finally, countof
is defined as the size of the result of the function _ArraySizeHelper
. Note we don’t even need to define _ArraySizeHelper()
, — a declaration is enough.
With this new definition,
int x[10];
int y[ 2*countof(x) ]; // twice as big as x
becomes valid, just as we desire.
Am I happy now? Well, I think this definition is definitely better than the others we have visited, but it is still not quite what I want. For one thing, it doesn’t work with types defined inside a function. That’s because the template function _ArraySizeHelper
expects a type that is accessible in the global scope.
I don’t have a better solution. If you know one, please let me know.
dthiisprenz 0 / 0 / 0 Регистрация: 09.08.2021 Сообщений: 5 |
||||
1 |
||||
Реализация подсчета количества цифр в массиве09.08.2021, 22:46. Показов 1322. Ответов 9 Метки с++ (Все метки)
Здравствуйте , такой вопрос от новичка. Имеется массив строк , вводится каждый элемент массива с клавиатуры. Далее нужно подсчитать количество цифр во всех элементах массива, исключай остальные символы (буквы и др). Хочу использовать isdigit , но не знаю как реализовать для двумерного массива. Подскажите как это правильно реализовать isdigit или другой способ реализовать подсчет .
0 |
1703 / 1103 / 337 Регистрация: 25.01.2019 Сообщений: 2,901 |
|
09.08.2021, 23:32 |
2 |
но не знаю как реализовать для двумерного массива. А для одномерного можешь? смысл такой: Код a [0]->[0][1][2][3][4][5] | H e l l o '' [1]->[0][1][2][3][4][5][6] | W o r l d ! '' [2]->[0][1][2][3] d o p '' Ты и сам пишешь:
const int L = 128; // количество символов в строке Знач в цикле
for (i = 0; i<N; i++) Ты обходишь строки, а буквы строки проходи ещё одним циклом внутри этого цикла Т.е. буква “r” в том что я нарисовал будет a[1][2]; 1 – значение переменной внешнего цикла(индекс строки) Добавлено через 1 минуту
1 |
dthiisprenz 0 / 0 / 0 Регистрация: 09.08.2021 Сообщений: 5 |
||||
09.08.2021, 23:36 [ТС] |
3 |
|||
Да,спасибо, я как раз разобрала этот момент , и начала реализовывать. Но считает все равно пока неверно, я так понимаю счетчик прерывается , когда встречается другой символ , но это лишь гипотеза.
0 |
Folian 1703 / 1103 / 337 Регистрация: 25.01.2019 Сообщений: 2,901 |
||||
10.08.2021, 00:00 |
4 |
|||
0 |
0 / 0 / 0 Регистрация: 09.08.2021 Сообщений: 5 |
|
10.08.2021, 00:10 [ТС] |
5 |
Тут такой момент , нужно было предупредить , ввод количества элементов в массиве необходимо оставить, то есть вводится количество элементов , затем каждый элемент и находится общее число цифр во всех элементах. Как только я создаю N, динамически изменяемую , программа начинает неверно считать, не могу понять что она считает . так в результате компиляции вашего последнего варианта , только с N не const, и вводом N с клавиатуры, подсчет снова производится неверно. Прикреплю картинку. Миниатюры
0 |
1703 / 1103 / 337 Регистрация: 25.01.2019 Сообщений: 2,901 |
|
10.08.2021, 00:21 |
6 |
только с N не const, и вводом N с клавиатуры, подсчет снова производится неверно. Не по теме: -Эй, девочка! Не трогай медведя!!
в результате компиляции вашего последнего варианта , только с N не const Который и не должен компилироваться, на минуточку
Тут такой момент , нужно было предупредить , ввод количества элементов в массиве необходимо оставить, то есть вводится количество элементов , затем каждый элемент и находится общее число цифр во всех элементах. Тебе нужно быстро или основательно? Если основательно – иди читай про указатели, а я пойду покурить.
0 |
0 / 0 / 0 Регистрация: 09.08.2021 Сообщений: 5 |
|
10.08.2021, 00:27 [ТС] |
7 |
Вообще именно это нужно быстро , но основательно я также занимаюсь
0 |
Folian 1703 / 1103 / 337 Регистрация: 25.01.2019 Сообщений: 2,901 |
||||
10.08.2021, 00:53 |
8 |
|||
Вообще именно это нужно быстро Вот тебе бЫстра:
Но объяснять я тут ничего не буду.
но основательно я также занимаюсь Иди читай про указатели и про динамическое выделение памяти.
1 |
SmallEvil 2340 / 1868 / 606 Регистрация: 29.06.2020 Сообщений: 7,056 |
||||
10.08.2021, 01:15 |
9 |
|||
Если N небольшое, чисто для теста, можно создать массив больше, добавить еще один размер NR (полезных данных).
писал с потолка, ничего не проверял, но можно как то так,
1 |
XLAT |
10.08.2021, 12:41
|
Не по теме:
-Эй, девочка! Не трогай медведя!!
0 |
Подскажите, пожалуйста, как подсчитать количество цифр в каждом из целочисленных элементов массива int
. Скажем, массив выглядит так:
int array[] = new int[]{28, 38, 72024, 8000};
задан 6 янв 2018 в 14:06
8
Можно сделать как-то так, используя Stream API:
IntStream.of(array)
.mapToObj(Integer::toString)
.mapToInt(String::length)
.forEach(System.out::println);
Сначала создаем из массива поток, преобразуем каждый элемент в строку, берем длину каждой строки и выводим.
ответ дан 6 янв 2018 в 14:54
Alex ChermeninAlex Chermenin
5,43814 серебряных знаков36 бронзовых знаков
Можно посчитать сколько тысяч, десятков, сотен. Потом сложить их для каждого элемента массива:
int input = 123;
int units = input % 10;// единицы
int n = input / 10;
int tens = n % 10;// десятки
n = n / 10;
int hundreds = n % 10;// сотни
n = n / 10;
int thousands = n % 10;// тысячи
int result = units + tens + hundreds + thousands;
System.out.println("result = " + result);
ответ дан 12 янв 2018 в 17:09
1
Можно из массива собрать карту – из скольких цифр состоит каждое число:
int[] arr = {28, 38, 72024, 8000};
Map<Integer, Integer> map = Arrays.stream(arr).boxed()
.collect(Collectors.groupingBy(i -> i, LinkedHashMap::new,
Collectors.summingInt(i -> String.valueOf(i).length())));
System.out.println(map); // {28=2, 38=2, 72024=5, 8000=4}
ответ дан 11 дек 2020 в 23:29
В этой статье мы рассмотрим, как определить количество элементов в объекте Python и при необходимости подсчитать их сумму. Также увидим, как подсчитать количество вхождений конкретного элемента.
Итак, представим, что у нас есть следующий массив:
По условию задачи мы хотим определить, сколько элементов в данном массиве, и какова сумма всех этих элементов.
В первую очередь, вспомним, что в языке программирования Python существует специальная функция, возвращающая длину списка, массива, последовательности и так далее — это len(x), где x — наша последовательность.
Если разобраться, длина последовательности из чисел — это одновременно и количество самих цифр, поэтому мы можем решить поставленную задачу следующим образом:
print(len(array)) 6 Press any key to continue . . .А для подсчёта суммы можем занести перечисление массива Python в цикл:
array = [6,2,7,4,8,1] sum = 0 for i in range(len(array)): sum = array[i] print(sum)В принципе, вопрос решён. Но, по правде говоря, перебор целочисленного массива с помощью цикла для получения суммы элементов массива — это, всё же, костыль)). Дело в том, что в Python существует встроенная функция sum(). Она вернёт нам сумму без лишних телодвижений.
def main(): array = [1,6,3,8,4,9,25,2] print(sum(array)) if name == 'main': main() 58 Press any key to continue . . .Python: количество вхождений конкретного элемента
Бывает, нам надо подсчитать число вхождений определённых элементов в списке и вернуть найденное значение. Для этого в Python есть метод count(). Вот его синтаксис:
Метод принимает аргумент x, значение которого нас интересует. И возвращает число вхождений интересующего элемента в список:
# объявляем список website_list = ['otus.ru','includehelp.com', 'yandex.by', 'otus.ru'] # подсчитываем вхождения 'otus.ru' count = website_list.count('otus.ru') print('otus.ru found',count,'times.') # подсчитываем вхождения 'yandex.by' count = website_list.count('yandex.by') print('yandex.by found',count,'times.')Итог будет следующим:
otus.ru found 2 times. yandex.by found 1 times.Также этот метод успешно работает и с кортежами:
# объявляем кортеж sample_tuple = ((1,3), (2,4), (4,6)) # условные вхождения (1,2) count = sample_tuple.count((1,2)) print('(1,2) found',count,'times.') # условные вхождения (1,3) count = sample_tuple.count((1,3)) print('(1,3) found',count,'times.')Результат:
(1,2) found 0 times. (1,3) found 1 times.Вот и всё, теперь вы знаете, как подсчитывать количество элементов в списке, массиве, кортеже в Python.
(PHP 4, PHP 5, PHP 7, PHP 8)
count — Подсчитывает количество элементов массива или Countable объекте
Описание
count(Countable|array $value
, int $mode
= COUNT_NORMAL
): int
Список параметров
-
value
-
Массив или объект, реализующий Countable.
-
mode
-
Если необязательный параметр
mode
установлен в
COUNT_RECURSIVE
(или 1), count()
будет рекурсивно подсчитывать количество элементов массива.
Это особенно полезно для подсчёта всех элементов многомерных
массивов.Предостережение
count() умеет определять рекурсию для избежания
бесконечного цикла, но при каждом обнаружении выводит ошибку уровня
E_WARNING
(в случае, если массив содержит себя
более одного раза) и возвращает большее количество, чем могло бы
ожидаться.
Возвращаемые значения
Возвращает количество элементов в value
.
До PHP 8.0.0, если параметр не был ни массивом (array), ни объектом (object), реализующим интерфейс Countable,
возвращалось 1
,
если значение параметра value
не было null
,
в этом случае возвращалось 0
.
Список изменений
Версия | Описание |
---|---|
8.0.0 |
count() теперь выбрасывает TypeError, если передан недопустимый исчисляемый тип в параметр value .
|
7.2.0 |
count() теперь будет выдавать предупреждение о недопустимых исчисляемых типах, переданных в параметр value .
|
Примеры
Пример #1 Пример использования count()
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
?>
Результат выполнения данного примера:
Пример #2 Пример использования count() с неисчисляемым типом (плохой пример – не делайте так)
<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));var_dump(count(null));var_dump(count(false));
?>
Результат выполнения данного примера:
Результат выполнения данного примера в PHP 7.2:
int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 int(1)
Результат выполнения данного примера в PHP 8:
int(3) Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12
Пример #3 Пример рекурсивного использования count()
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));// рекурсивный подсчёт
var_dump(count($food, COUNT_RECURSIVE));// обычный подсчёт
var_dump(count($food));?>
Результат выполнения данного примера:
Пример #4 Объект, реализующий интерфейс Countable
<?php
class CountOfMethods implements Countable
{
private function someMethod()
{
}
public function
count(): int
{
return count(get_class_methods($this));
}
}$obj = new CountOfMethods();
var_dump(count($obj));
?>
Результат выполнения данного примера:
Смотрите также
- is_array() – Определяет, является ли переменная массивом
- isset() – Определяет, была ли установлена переменная значением, отличным от null
- empty() – Проверяет, пуста ли переменная
- strlen() – Возвращает длину строки
- is_countable() – Проверить, что содержимое переменной является счётным значением
- Массивы
onlyranga at gmail dot com ¶
9 years ago
[Editor's note: array at from dot pl had pointed out that count() is a cheap operation; however, there's still the function call overhead.]
If you want to run through large arrays don't use count() function in the loops , its a over head in performance, copy the count() value into a variable and use that value in loops for a better performance.
Eg:
// Bad approach
for($i=0;$i<count($some_arr);$i++)
{
// calculations
}
// Good approach
$arr_length = count($some_arr);
for($i=0;$i<$arr_length;$i++)
{
// calculations
}
asma mechtaba ¶
1 year ago
count and sizeof are aliases, what work for one works for the other.
Christoph097 ¶
1 year ago
Empty values are counted:
<?php
$ar[] = 3;
$ar[] = null;
var_dump(count($ar)); //int(2)
?>
lucasfsmartins at gmail dot com ¶
4 years ago
If you are on PHP 7.2+, you need to be aware of "Changelog" and use something like this:
<?php
$countFruits = is_array($countFruits) || $countFruits instanceof Countable ? count($countFruits) : 0;
?>
You can organize your code to ensure that the variable is an array, or you can extend the Countable so that you don't have to do this check.
Anonymous ¶
3 years ago
For a Non Countable Objects
$count = count($data);
print "Count: $countn";
Warning: count(): Parameter must be an array or an object that implements Countable in example.php on line 159
#Quick fix is to just cast the non-countable object as an array..
$count = count((array) $data);
print "Count: $countn";
Count: 250
danny at dannymendel dot com ¶
15 years ago
I actually find the following function more useful when it comes to multidimension arrays when you do not want all levels of the array tree.
// $limit is set to the number of recursions
<?php
function count_recursive ($array, $limit) {
$count = 0;
foreach ($array as $id => $_array) {
if (is_array ($_array) && $limit > 0) {
$count += count_recursive ($_array, $limit - 1);
} else {
$count += 1;
}
}
return $count;
}
?>
alexandr at vladykin dot pp dot ru ¶
16 years ago
My function returns the number of elements in array for multidimensional arrays subject to depth of array. (Almost COUNT_RECURSIVE, but you can point on which depth you want to plunge).
<?php
function getArrCount ($arr, $depth=1) {
if (!is_array($arr) || !$depth) return 0;
$res=count($arr);
foreach (
$arr as $in_ar)
$res+=getArrCount($in_ar, $depth-1);
return
$res;
}
?>
pied-pierre ¶
7 years ago
A function of one line to find the number of elements that are not arrays, recursively :
function count_elt($array, &$count=0){
foreach($array as $v) if(is_array($v)) count_elt($v,$count); else ++$count;
return $count;
}
php_count at cubmd dot com ¶
6 years ago
All the previous recursive count solutions with $depth option would not avoid infinite loops in case the array contains itself more than once.
Here's a working solution:
<?php
/**
* Recursively count elements in an array. Behaves exactly the same as native
* count() function with the $depth option. Meaning it will also add +1 to the
* total count, for the parent element, and not only counting its children.
* @param $arr
* @param int $depth
* @param int $i (internal)
* @return int
*/
public static function countRecursive(&$arr, $depth = 0, $i = 0) {
$i++;
/**
* In case the depth is 0, use the native count function
*/
if (empty($depth)) {
return count($arr, COUNT_RECURSIVE);
}
$count = 0;
/**
* This can occur only the first time when the method is called and $arr is not an array
*/
if (!is_array($arr)) {
return count($arr);
}
// if this key is present, it means you already walked this array
if (isset($arr['__been_here'])) {
return 0;
}
$arr['__been_here'] = true;
foreach (
$arr as $key => &$value) {
if ($key !== '__been_here') {
if (is_array($value) && $depth > $i) {
$count += self::countRecursive($value, $depth, $i);
}
$count++;
}
}
// you need to unset it when done because you're working with a reference...
unset($arr['__been_here']);
return $count;
}
?>
Gerd Christian Kunze ¶
9 years ago
Get maxWidth and maxHeight of a two dimensional array..?
Note:
1st dimension = Y (height)
2nd dimension = X (width)
e.g. rows and cols in database result arrays
<?php
$TwoDimensionalArray = array( 0 => array( 'key' => 'value', ...), ... );
?>
So for Y (maxHeight)
<?php
$maxHeight = count( $TwoDimensionalArray )
?>
And for X (maxWidth)
<?php
$maxWidth = max( array_map( 'count', $TwoDimensionalArray ) );
?>
Simple? ;-)
buyatv at gmail dot com ¶
6 years ago
You can not get collect sub array count when there is only one sub array in an array:
$a = array ( array ('a','b','c','d'));
$b = array ( array ('a','b','c','d'), array ('e','f','g','h'));
echo count($a); // 4 NOT 1, expect 1
echo count($b); // 2, expected
JumpIfBelow ¶
8 years ago
As I see in many codes, don't use count to iterate through array.
Onlyranga says you could declare a variable to store it before the for loop.
I agree with his/her approach, using count in the test should be used ONLY if you have to count the size of the array for each loop.
You can do it in the for loop too, so you don't have to "search" where the variable is set.
e.g.
<?php
$array = [1, 5, 'element'];
for($i = 0, $c = count($array); $i < $c; $i++)
var_dump($array[$i]);
?>
buyatv at gmail dot com ¶
6 years ago
You can not get collect sub array count when use the key on only one sub array in an array:
$a = array("a"=>"appple", b"=>array('a'=>array(1,2,3),'b'=>array(1,2,3)));
$b = array("a"=>"appple", "b"=>array(array('a'=>array(1,2,3),'b'=>array(1,2,3)), array(1,2,3),'b'=>array(1,2,3)), array('a'=>array(1,2,3),'b'=>array(1,2,3))));
echo count($a['b']); // 2 NOT 1, expect 1
echo count($b['b']); // 3, expected
vojtaripa at gmail dot com ¶
2 years ago
To get the count of the inner array you can do something like:
$inner_count = count($array[0]);
echo ($inner_count);
ThisIsNotImportant ¶
7 years ago
About 2d arrays, you have many way to count elements :
<?php
$MyArray = array ( array(1,2,3),
1,
'a',
array('a','b','c','d') );// All elements
echo count($MyArray ,COUNT_RECURSIVE); // output 11 (9 values + 2 arrays)
// First level elements
echo count($MyArray ); // output 4 (2 values+ 2 arrays)
// Both level values, but only values
echo(array_sum(array_map('count',$MyArray ))); //output 9 (9 values)
// Only second level values
echo (count($MyArray ,COUNT_RECURSIVE)-count($MyArray )); //output 7 ((all elements) - (first elements))
?>
max at schimmelmann dot org ¶
3 years ago
In special situations you might only want to count the first level of the array to figure out how many entries you have, when they have N more key-value-pairs.
<?php
$data
= [
'a' => [
'bla1' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
],
'bla2' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
],
'bla3' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
],
'bla4' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
],
],
'b' => [
'bla1' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
],
'bla2' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
],
],
'c' => [
'bla1' => [
0 => 'asdf',
1 => 'asdf',
2 => 'asdf',
]
]
];
$count = array_sum(array_values(array_map('count', $data)));
// will return int(7)
var_dump($count);// will return 31
var_dump(count($data, 1));
?>
XavDeb ¶
3 years ago
If you want to know the sub-array containing the MAX NUMBER of values in a 3 dimensions array, here is a try (maybe not the nicest way, but it works):
function how_big_is_the_biggest_sub ($array) {
// we parse the 1st level
foreach ($array AS $key => $array_lvl2) {
//within level 2, we count the 3d levels max
$lvl2_nb = array_map( 'count', $array_lvl2) ;
$max_nb = max($lvl2_nb);
// we store the matching keys, it might be usefull
$max_key = array_search($max_nb, $lvl2_nb);
$max_nb_all[$max_key.'|'.$key] = $max_nb;
}
// now we want the max from all levels 2, so one more time
$real_max = max($max_nb_all);
$real_max_key = array_search($real_max, $max_nb_all);
list($real_max_key2, $real_max_key1) = explode('|', $real_max_key);
// preparing result
$biggest_sub['max'] = $real_max;
$biggest_sub['key1'] = $real_max_key1;
$biggest_sub['key2'] = $real_max_key2;
return $biggest_sub;
}
/*
$cat_poids_max['M']['Juniors'][] = 55;
$cat_poids_max['M']['Juniors'][] = 61;
$cat_poids_max['M']['Juniors'][] = 68;
$cat_poids_max['M']['Juniors'][] = 76;
$cat_poids_max['M']['Juniors'][] = 100;
$cat_poids_max['M']['Seniors'][] = 55;
$cat_poids_max['M']['Seniors'][] = 60;
$cat_poids_max['M']['Seniors'][] = 67;
$cat_poids_max['M']['Seniors'][] = 75;
$cat_poids_max['M']['Seniors'][] = 84;
$cat_poids_max['M']['Seniors'][] = 90;
$cat_poids_max['M']['Seniors'][] = 100;
//....
$cat_poids_max['F']['Juniors'][] = 52;
$cat_poids_max['F']['Juniors'][] = 65;
$cat_poids_max['F']['Juniors'][] = 74;
$cat_poids_max['F']['Juniors'][] = 100;
$cat_poids_max['F']['Seniors'][] = 62;
$cat_poids_max['F']['Seniors'][] = 67;
$cat_poids_max['F']['Seniors'][] = 78;
$cat_poids_max['F']['Seniors'][] = 86;
$cat_poids_max['F']['Seniors'][] = 100;
*/
$biggest_sub = how_big_is_the_biggest_sub($cat_poids_max);
echo "<li> ".$biggest_sub['key1']." ==> ".$biggest_sub['key2']." ==> ".$biggest_sub['max']; // displays : M ==> Seniors ==> 7