Disco, завязывай. ты тут и так на грани фола находишься
Disco, завязывай. ты тут и так на грани фола находишься
Задача для тех кто хоть немного шарит в php:
Напишите свою функцию (нельзя использовать стандартную функцию count) которая подсчитывает количество элементов массива
Koenig, Блин я думал что-то по сложнее будет ![]()
# Jahak (13.10.2015 / 14:15)Где-то это я уже видел. Ты PHP не по видеоурокам от "Специалиста" учил?
Напишите свою функцию (нельзя использовать стандартную функцию count) которая подсчитывает количество элементов массива
function myCount($array, $include_sub_array = false) {
$count = 0;
if(is_null($array))
return 0;
if(!is_array($array)){
return 1;
}
foreach($array as $array_element) {
if($include_sub_array && is_array($array_element)){
$count += myCount($array_element, true);
} else {
$count++;
}
}
return $count;
}
var_dump(myCount(null)); // 0
$test = [1,2,3,4,5];
var_dump(myCount($test)); // 5
$test[] = [6,7,8,[9,10,11]];
var_dump(myCount($test, false)); // 6
var_dump(myCount($test, true)); // 11
var_dump(myCount([], true)); // 0Jahak
Напишите свою функцию которая подсчитывает количество элементов массива
<?php
function counting($arr = array()) {
$sum = 0;
foreach ($arr as $val) {unset($val); $sum++;}
return $sum;
}
echo counting();Blade
если подмассив пустоймой вариант принимает пустой массив, и возвращает 0. А ещё можно вообще вызвать counting(); без аргумента, результат будет так же 0.
Blade, ты написал подсчёт любой вложенности? Кросавчег! ![]()
# ДоХтор (13.10.2015 / 22:25)да, ограничение по стеку вызовов функции
Blade, ты написал подсчёт любой вложенности? Кросавчег!
мой вариант принимает пустой массив, и возвращает 0.
А ещё можно вообще вызвать counting(); без аргумента, результат будет так же 0.
собна рабочая версия:
function myCount($array, $include_sub_array = false) {
$count = 0;
if(is_null($array))
return 0;
if(!is_array($array))
return 1;
foreach($array as $array_element) {
if($include_sub_array && is_array($array_element)) {
$sub_count = myCount($array_element, true);
if($sub_count != 0) {
$count += $sub_count;
} else {
$count++;
}
} else {
$count++;
}
}
return $count;
}
var_dump(myCount(null)); // 0
$test = [1,2,3,4,5];
var_dump(myCount($test)); // 5
$test[] = [6,7,8,[9,10,11]];
var_dump(myCount($test, false)); // 6
var_dump(myCount($test, true)); // 11
var_dump(myCount([], true)); // 0
var_dump(myCount([[],[],[]])); // 3
var_dump(myCount([[],[],[]], true)); // 3