Kleindberg
@Kleindberg
Full stack

Как реализовать сопоставление значений на PHP?

Нужно сопоставить строку с массивом значений и если в массиве есть данная строка вернуть заданный результат. Что-то по типу: яблоко, груша, слива, персик - это фрукт, иначе - неизвестно.

В голову приходят конструкции по типу if ... else, но логика подсказывает, что нужно делать через массивы.

if($a="яблоко" or $a="груша" or $a="персик") {
return $res = "Это фрукты";
} else {
return $res = "Неизвестно"; // или может сразу null?
}

Это нужно чтобы подсказывать пользователю в зависимости от его выбора подходящие значения. Буду благодарен за любые напутствия :-)
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
Kleindberg
@Kleindberg Автор вопроса
Full stack
Благодаря Lander получилось составить нужную функцию, ответ на вопрос выглядит так:

function get_type($a) {
	
	// Массив значений
	$arrays = [
		"фрукт" => [ "яблоко", "груша", "персик" ],
		"овощ" => [ "помидор", "огурец", "капуста" ]
	];
	
	// Поиск соответствия
	foreach ($arrays as $key => $value) {
		if (in_array($a, $value)) {
			return $key;
		}
	}
	return null;
}

// Использование
echo 'Вы знали, что огурец это '. get_type("огурец") .'?';
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
return in_array($a, ["яблоко", "груша", "персик"])
    ? 'Это фрукты'
    : null;
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы