Илья_2712
Вопрос очень нубский, но никак не могу его решить.
Подскажите, есть формула следующего вида:
PHP:
function my_map_data( $data ) { ‘Мальчики’ => ‘Для мальчиков’, ‘Мальчишки’ => ‘Для мальчиков’, ‘Молодые парнишки’ => ‘Для мальчиков’ ); }Как упростить эту запись? То есть если значение равно любому из предложенных вариантов, то перевести на указанное значение.
Пробовал 2 варианта:
1)Код (Text):
‘Мальчики’, ‘Мальчишки’, ‘Молодые парнишки’ => ‘Для мальчиков’,2)
Код (Text):
‘Мальчики, Мальчишки, Молодые парнишки’ => ‘Для мальчиков’,Но это не работает.
roboformation
PHP:
function my_map_data( $data ) { $map = [«Мальчики», «Мальчишки», «Молодые парнишки»]; }
Илья_2712
Это сработало! Спасибо, ты очень помог!
А если немного усложнить задачу и нужно дописать про девочек, то как в итоге получится?P.S. Я попробовал так, но ничего не вышло:
PHP:
roboformation
На 3 строке убрать «: $data» + тогда перестроить условие. Также ты изменяешь массив $map
Илья_2712
А можно понаглеть и попросить показать наглядно?
Совсем не разбираюсь в коде, точнее только начинаю изучать.
roboformation
PHP:
function my_map_data( $data ) { $map = [«Мальчики», «Мальчишки», «Молодые парнишки», «Девочки», «Девчонки», «Красивые девчули» ]; ? «Для мальчиков» : «Для девочек») ; }Можно так
Илья_2712
А вот в этой формуле я уже вообще ничего не понимаю)))
Скопировать вставить кончено я смогу, но ели понадобится добавить еще какие-то значения, то темный лес. Сам не смогу ничего написать.
Ладно, спасибо тебе огромное за помощь! Итак много помог!
roboformation
Я могу объяснить:
1. Если не находим $data в массиве, возвращаем $data
2. Если находим, то тут ещё развилка:
1. Если ключ, связанный с найденным значением, меньше или равен 2, то, соответственно, возвращаем ‘для мальчиков’
2. Т. к. значение найдено в массиве, а ‘для мальчиков’ не подходит, то подходит ‘для девочек’Посмотри, какие ключи связаны со значениями в массиве с помощью:
PHP:
$map = [«Мальчики», «Мальчишки», «Молодые парнишки», «Девочки», «Девчонки», «Красивые девчули» ];
Илья_2712
Пробую написать код под твоим чутким руководством))
Есть значения, которые надо интерпретировать:
Мальчик, Мальчики, Мальчуганы — Для мальчиков
Девочка, Девчуля — Для девочек
Тетенька — Для женщинPHP:
function my_map_data( $data ) { $map = [«Мальчик», «Мальчики», «Мальчуганы», «Девочка», «Девчуля», «Тетенька» ]; ? «Для мальчиков» ) ; ? «Для девочек» ) ; ? «Для женщин» ) ; }Примерно так?)))
И неужели это самый простой способ перечисления?)
roboformation
PHP:
function my_map_data ($data) { $map = [ «Для мальчиков» => [«Мальчик», «Мальчики», «Мальчуганы»], «Для девочек» => [«Девочка», «Девчуля»], «Для женщин» => [«Тетенька»] ]; foreach ($map as $result => $group) { foreach ($group as $str) { if ($data == $str) { return $result; } } } return $data; }Если количество групп большое, лучше сделать так
Илья_2712
Вот это то, что надо.
Спасибо огромное! Огромнейшее!