Назначить несколько ключей одному значению в массиве

$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' ); 

Поэтому мне нужно сделать так, чтобы он добавлял его в массив и не заполнял мои ключевые значения одинаковым значением, поскольку на самом деле они не все точно такие же. Я должен был сказать это вначале

Related of "Назначить несколько ключей одному значению в массиве"

Вы можете использовать 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 + =