[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как получить цвет слова =)
Arh
Хочу подсвечивать фон, на основе слова или его первой буквы (в принципе неважно)
На данный момент использую функцию где есть массив в котором в качестве ключей лежат буквы алфавита, а в качестве значений их цвета.
Получаю первую букву слова, по ней нахожу нужный цвет.
Но тут задался мыслью как получать цвет независимо от алфавита?
К чему привязаться? К количеству байт в слове и количеству цветов в массиве или к каким то кодам символа или еще к чему.
В итоге должно получится что то вроде такой функции.

echo colorWord('Слово', ['blue', 'red', 'purple']); //Допустим всегда вернёт red
echo colorWord('Word', ['blue', 'red', 'purple']); //Допустим всегда вернёт purple


То есть там даже необязательно должен лежать цвет, просто по какому то алгоритму на основе первого входного параметра, возвращается значение массива второго параметра.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Guest
function colorWord($word, $colors) {
return $colors[abs(intval(hexdec(hash('crc32', $word)), 16)) % count($colors)];
}
Arh
Guest
Сильно) Спасибо потестирую.


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Guest
На всяк случай поясню что я тут имел в виду.

Идея очень простая: к строке $word применяем какую-нибудь хеш-функцию (какую-нибудь из коробки, или велосипед какой-нибудь) что бы в итоге получилось число. Ну а потом просто делим это число по модулю на count($colors).

Хеш-функция здесь место несколько узкое. Возможно нужно будет "подкрутить" где-то: дополнительно взять какой-нибудь корень из числа, натуральный логарифм, ...
Arh
Guest
Да я вижу идею) сам думал делать что подобное, только деление по модулю в голову не пришло, поэтому затупил на этапе сдвига ключей в массиве, а тут ты с процентом пришел smile.gif

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.