2010-07-26 2 views
1

Я настраиваю структуру интервала для некоторого текста на изображении. Поэтому я должен установить значение $ s для каждой буквы алфавита (нижний и верхний регистр), так что это 52 оператора.Лучшая структура «if statement»

Если я это маршрутизировать ElseIf список операторов собирается быть огромным ...

Есть ли лучший способ сделать это, чтобы помочь сократить код, который находит $ S значение в зависимости от $ значение char?

спасибо.

+0

Невозможно сказать, не зная, что находится внутри операторов if. Поместите некоторый код. Вы можете сделать большой оператор SWITCH; или вы можете использовать значение int символа для выполнения некоторой математики без IF или SWITCH. – NotMe

+0

Не могли бы вы показать код здесь или на Github Gist (или аналогичном), чтобы продемонстрировать, у вас проблемы? Я не думаю, что 52 заявления - это способ пойти ... звучит скорее как Switch/Case, работающий здесь, или поиск расстояния в массиве из 52 элементов? – kander

ответ

9

Используйте ассоциативный массив:

$map = array('a' => 'value', 'b' => 'other value', ...); 
$char = 'a'; 
$settingForChar = $map[$char]; // value 
+0

Вот несколько [документации] (http://php.net/manual/en/language.types.array.php) на нем. – NullUserException

0

Я может быть недопонимание, что вы надеетесь достичь, но не могли бы вы просто использовать моноширинный шрифт, или это не вариант здесь? Тогда вы знаете интервал, это то же самое для каждого персонажа.