Я работаю с моим кодом, который позволит пользователю вводить слово, и каждая буква слова будет давать значение.
Пример: пользователь ввел текст «APPLE».
Выход:
A - arc
P - priest
P - president
L - lion
E - escape
Значение каждой буквы будет в массиве.
У меня уже есть мой код здесь, но смысл повторяется.
Пример:
A - **Arrow**
L - Love
A - **Arrow**
S - Soul
Вот мой код
<?php
$chars = str_split("APPLE");
foreach($chars as $char){
if (substr($char, 0, 1) === 'A')
{
$meaning = array("Angel","Ancient","Arrow");
echo $meaning[array_rand($meaning)];
}
}
?>
Вы можете временно отключить его внутри петли, чтобы не было дуплекса. Пример:
$chars = str_split("APPLE");
$words = array(
// its up to you what words you want to map
'A' => array("Angel","Ancient","Arrow"),
'E' => array('Elephat', 'Eardrum'),
'L' => array('Level', 'Laravel', 'Love'),
'S' => array('Sweet', 'Spicy', 'Savy'),
'P' => array('Powerful', 'Predictable', 'Pass', 'piss')
);
foreach($chars as $char){
$random_key = array_rand($words[$char]); // get random key
$key = $words[$char][$random_key]; // get the word
unset($words[$char][$random_key]); // unset it so that it will never be repeated
echo "$char - $key <br/>";
}
Вы можете сохранить «кеш» массив ранее использованных терминов. Пример:
<?php
$chars = str_split("APPLE");
$used_terms = array();
foreach($chars as $char){
if (substr($char, 0, 1) === 'A') {
$meaning = array("Angel","Ancient","Arrow");
do {
$term = $meaning[array_rand($meaning)];
} while (in_array($term, $used_terms));
$used_terms[] = $term;
echo $term;
}
}
?>