Хочу написать такую функцию, которая бы принимала 3 значения:
имя1, имя2, количество_раз
newFunc('Алексей', 'Дмитрий', 5);
И нужно чтобы она работала так:
выполняется 5 переборов
1 = Алексей
2 = Дмитрий
3 = Алексей
4 = Дмитрий
5 = Алексей
И в результат чтобы вернуло
return 'Алексей';
Буду благодарен за полезную информацию.
Если имен всего два, то результат будет зависеть от того, четное число передано или нет
function myFunc($name1, $name2, $num){
$names = [$name1, $name2];
return $names[$num % 2];
}
Более интересна была бы общая задача, когда первым аргументом передавалось число, а далее следовало бы переменное число аргументов - имен. Нечто похожее на это:
function func($num, ...$names){
return $names[$num % count($names)];
}
func(100, 'Василий', 'Иннокентий', 'Кирилл')
Или если есть особое желание передавать число последним аргументом то
function func(...$values){
$num = array_pop($values);
...
}
Вам пригодится деление с остатком.
Псевдокод (т.к. php уже изрядно подзабыл) функции на любое количество людей:
$data = array("Алексей", "Борис", "Виктор", 10) // пример входных данных
func schitalochka ($input)
{
$num = array_pop($input);
$number_of_people = count($input);
$pos = $num % $number_of_people + 1;
return $input[$pos];
}
$num
- число.$number_of_people
- количество людей.$pos
- нужная нам позиция. Прибавляем единицу, т.к. нумерация элементов массива начинается с 0, а мы считаем с 1.Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Из-за чего может быть такая ошибка
Пишу программу по учету заказов одного предприятияЕсть форма, которая по сути есть отчет, то есть на нее добавляется различная информация