php Как посчитать количество элементов в массиве?
Как посчитать количество элементов в массиве, то есть написать свою функцию count..
Вообще в PHP есть встроенная функция count, если ей передать массив она выдаст количество элементов:
А как он это считает? Можно ли написать свою функцию, которая будет считать и потом применить ее к другим своим проектам, например, подсчитать количество файлов в во всех вложенных директориях.
Все просто, использует вложенные функции, так называемые рекурсивные:
echo count ($massiv); // подсчитает только верхний уровень
echo count ($massiv, 1); // подсчитает все вложенные уровни массива
А как он это считает? Можно ли написать свою функцию, которая будет считать и потом применить ее к другим своим проектам, например, подсчитать количество файлов в во всех вложенных директориях.
Все просто, использует вложенные функции, так называемые рекурсивные:
<?php
function myCount ($item, $mode=0){
$i=0;
foreach ($item as $v){
if ($mode==1 && is_array($v)) // если массив заходим и считаем элементы
$i += myCount($v, 1);
$i++;
}
return $i;
}
$cars['bmw'] = array ('model' => 'X5','speed' => '120','doors' => '5','year' => '2006', );
$cars['opel'] = array ('model' => 'Corsasd','speed' => '2120','doors' => '35','year' => '2026',);
$cars['subaru'] = array ('model' => 'B4','speed' => '220','doors' => '5','year' => '2014',);
echo myCount ($cars); // выдаст 3
echo myCount ($cars,1); // выдаст 15
?>
Оставить свой ответ: