darkleviathan
@darkleviathan

Как на php выводить данные переменной с промежутками лет?

$birthday=35; //полных лет
//$m= из бд может быть мужчина, может быть женщина, может быть не указано

// для мужчины
$s[1]="18-60 лет-Test1<br>60-90 лет-Test2";

// для женщины
$s[2]="18-60 лет-Test3<br>60-90 лет-Test4";

//общий
$s[3]="18-60 лет-Test1<br>60-90 лет-Test2<br><br>18-60 лет-Test3<br>60-90 лет-Test4";


if ($m=='муж.' & $s[1]>'') print "$s[1]";
else if ($m=='жен.' & $s[2]>'') print "$s[2]";
else print "$s[3]";


Как выводить например для мужчины 35 лет только информацию (Test1) если его возраст между 18-60 лет? Через explode пробовал, но я не могу расcчитать все факторы? если потом то же самое для женщин и других возрастов.

Возможно кто-то уже писал такое и может поделиться.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@poniyur
рофл
/////
$m = 'жен.';
$age = 35;

/////
$texts = [
	'муж.' => ['Текст для мужчины 18-60 лет', 'Текст для деда'],
	'жен.' => ['Текст для женщины 18-60 лет', 'Текст для бабуси'],
	'общ.' => ['Текст для гендерно-нейтрального обращения', 'Тоже самое, ток по-старше'],
];
$age_limits = [18, 60, 90];
$too_young_text = "Извини, тебе меньше $age_limits[0] лет. САСИ.";
$too_old_text = "Извините, вы слишком старый(ая, ое). Родитесь плз попозже.";

$text_variant = -1;
foreach ($age_limits as $age_step) {
	if( $age >= $age_step ) $text_variant++;
}

if( $text_variant < 0 ) {
	echo $too_young_text ;
} else if( $text_variant == count($age_limits) - 1 ) {
	echo $too_old_text ;
} else {
	echo $texts[$m][$text_variant]; 
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 19:21
300 руб./за проект
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект