$lang = array( 'thank you'=>'You are welcome', 'thanks'=>'You are welcome', 'thank ya'=>'You are welcome' );
Как вы можете видеть, это утомительное написание нескольких клавиш для одного и того же значения, я могу это сделать.
$lang['thanks']=>$lang['thank ya']=>$lang['thank you']
Просто пытаясь сэкономить некоторое время здесь, переписывая сто раз
Функция класса PHP:
function fetch_key($key, $l,$bool){ $dynamic = new l18n; if($bool == true or is_null($bool)){ return addslashes( $dynamic->convert($key,$l) ); }else{ return $dynamic->convert($key,$l); } }
EX
$lang = array( 'thank you'=>'You are welcome', 'thanks'=>'You are welcome', 'thank ya'=>'You are welcome', 'hello'=>'hello', 'goodbye'=>'goodbye' );
Поэтому мне нужно сделать так, чтобы он добавлял его в массив и не заполнял мои ключевые значения одинаковым значением, поскольку на самом деле они не все точно такие же. Я должен был сказать это вначале
Вы можете использовать array_fill_keys()
:
$keys = array('thank you','thanks','thank ya'); $lang = array_fill_keys($keys, 'You are welcome');
пример
Хотя я сдержанно предлагаю решение для кода, когда вы признали, что новичок в этом языке, и просто не исследовали его хорошо, я надеюсь, что этот проект вы играете на языке, чтобы изучить его в противоположность сначала прыгнуть в голову, чтобы что-то дать клиенту, где он в конечном итоге не будет работать хорошо.
Edit: Просто увидел, что «хорошо, что я собираюсь в колледж для этого», и я рад, что я отправил на помощь.
Вот структура, которая делает то, что, как я считаю, вы пытаетесь сделать.
<?php class StandardizeSayings { public static $CONVERSIONS = array( 'You are welcome' => array( 'thank you', 'thanks', 'thank ya' ), 'Hello' => array('hello'), 'Goodbye' => array('goodbye', 'good bye') ); public static function getStandardization($word) { $word_lowercase = strtolower($word); foreach (StandardizeSayings::$CONVERSIONS as $conversion=>$equivalents) { if (array_search($word_lowercase, $equivalents) !== false) { return $conversion; } } return ''; } } echo StandardizeSayings::getStandardization('thank ya'); ?>
Он использует структуру класса со статическими членами / методами (поэтому не требуется создание экземпляра класса). Его легко расширить с помощью заранее определенного списка конверсий (для добавления дополнительных конверсий во время выполнения необходима работа.) Он также должен работать довольно быстро.
Я делаю это в три этапа:
1 – Определить уникальные значения
2 – заполнение повторяющегося значения
3 – Союз 1 и 2.
$lang = array( 'hello'=>'hello', 'goodbye'=>'goodbye' ); $keys = array('thank you','thanks','thank ya'); $result = array_fill_keys($keys, 'You are welcome'); $lang += $result;
Посмотрите на array_fill_keys и Array Operators + =