@ilyapokrov

Как соединить две функции php в одной?

Всем привет!

Подскажите, пожалуйста, я пока только начинаю осваивать PHP и никак не могу разобраться со следующей проблемой.

Использую 2 функции.

Первая функция:
function my_get_cat( $description ) {
	$description = explode( ' ', $description );
	return reset( $description );
}

Она делает следующее: например, если строка = "женское платье красное", то в итоге получим первое значение "женское"

Есть вторая функция:
function my_map_data_Pol( $data ) {
	if (mb_strpos($data, 'платье') !== false) {
    return 'платья';
}
    return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data;
}

Она делает следующее: например, если строка = "платье женское красное", то в итоге получим значение "платья"

И вот мой вопрос - как соединить обе функции? Плюс к этому, чтобы поиск осуществлялся не по первому слову, а по первым двум словам?
Объясню, мне это нужно для определения категории товара. Бывают разные значения, например:
- платье
- платье женское
- женское платье
- воротник для платья
  • Вопрос задан
  • 369 просмотров
Решения вопроса 1
@ilyapokrov Автор вопроса
Отредактировано*
Вот правильное и полное решение. Также добавлено приведение к нижнему регистру всех символов.
P.S. Не знаю, насколько грамотно я его составил, но по крайней мере работает.
function my_get_cat_probacat( $data ) {
    $words = explode( ' ', $data );
    $result = array_slice($words, 0, 3);
    $data = implode(' ', $result);
	$data = mb_strtolower ($data);
	$map = array(
);
	if (array_key_exists($data, $map)) {
	return $map[$data];
}

	if (mb_strpos($data, 'четвертый') !== false) {
    return '4';
}
	if (mb_strpos($data, 'третий') !== false) {
    return '3';
}
	if (mb_strpos($data, 'второй') !== false) {
    return '2';
}	
	if (mb_strpos($data, 'первый') !== false) {
    return '1';
}
 return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data;

}

echo my_get_cat_probacat ("Первый второй Третий четвертый");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы