Используйте AJAX.
Только учтите: PHP попросить переменную у JS не может, а вот JS по собственному желанию отправить переменную в PHP может (т.е. запустить PHP-скрипт и получить ответ).
Разбиваете график на 5 частей, описываете каждую часть некоторой функцией y = f(x) в математическом выражении. Затем, для каждой математической функции пишите функцию на паскале с её реализацией. Итого у вас получится 5 функций. Ну и в конце, пишите функцию main, в которой в зависимости от входного значения X, вызываете одну из тех 5 функций и печатаете результат.
array_unique — Убирает повторяющиеся значения из массива.
Лучше сразу ставить ID как ключ, тогда ничего не нужно будет делать и скрипт меньше съест памяти.
Пример:
Я не очень понимаю, какую именно задачу Вы пытаетесь решить.
Уменьшить размер данных на диске? Так важен не он, а размер индексов.
Вы ищете по этому полю? Ищете строгим соответствием? Если LIKE 'prefix%' не используете - посчитайте хэш строки, запишите в отдельный столбец и ищете запросом вида SELECT ... WHERE t.hash=hash(?) AND t.name=?
Будет работать индекс по хэшу - а он компактнее, чем индекс по всей строке.
Но, вообще, я бы не стал этим заморачиваться, не убедившись, что с производительностью именно в этом месте есть проблемы.