Напиши генератор случайного имени для кошки, собаки, брата или сестры на основе кода ниже. PHP: <?php error_reporting(-1); /* Слоги, из которых составляется имя */ $letters = array( 'ко', 'и', 'дзу', 'ми', 'са', 'ку', 'ра', 'да', 'чи', 'а', 'ки', 'ми', 'на', 'го', 'ха', 'ру' ); /* В эту переменную запишем получившееся имя */ $name = ''; /* Гененрируем 4 слога */ for ($i = 1; $i <= 4; $i++) { /* Выкидываем случайное число (count - число элементов в массиве) */ $random = ...; $randomText = ...; echo "Выпало число {$random}, слог {$randomText}\n"; .... } echo "------\n"; echo "Советую имя: {$name} - не прогадаешь!\n";
Я решил !!!!!! PHP: <?php $letters = array( 'ko', 'i', 'dzy', 'mi', 'sa', 'ky', 'ra', 'da', 'chi', 'a', 'ki', 'mi', 'na', 'go', 'ha', 'ry' ); for ($i = 1; $i <= 4; $i++) { $rand = rand(0,count($letters)); echo $letters[$rand]; } ?> Правда с array_rand() до сих пор не разобрался Надеюсь эта функция редко применяется.
PHP: <?php error_reporting(-1); $letters = array( 'ko', 'i', 'dzy', 'mi', 'sa', 'ky', 'ra', 'da', 'chi', 'a', 'ki', 'mi', 'na', 'go', 'ha', 'ry' ); $name = ''; for ($i = 1; $i <= 4; $i++) { $rand = rand(0, count($letters)-1); echo 'Chislo '. $rand. ' slog - '; echo $letters[$rand]; echo "<br>"; $name = $letters[$rand]; } echo $name; ?> Подскажите пожалуйста, как вывести все 4 слога, которые выпали, вместе в отдельной строчке. Чтобы получилось, допустим: Chislo 8 slog - chi Chislo 12 slog - na Chislo 0 slog - ko Chislo 10 slog - ki chinakoki И, если это возможно, чтобы первая буква была заглавной. Сhinakoki
@dub13, с ранд довольно все просто, если ты документацию читал. PHP: $letters = array( 'ко', 'и', 'дзу', 'ми', 'са', 'ку', 'ра', 'да', 'чи', 'а', 'ки', 'ми', 'на', 'го', 'ха', 'ру' ); echo array_reduce(array_rand($letters, 4), function($carry, $item) use ($letters) { $carry .= $letters[$item]; return $carry; }); Вот один из вариатон реализации твоей задачи. --- Добавлено --- Получаются какие-то забавные китайские имена. --- Добавлено --- PHP: array_rand($letters, 4) Тут вторым параметром мы задаем количество выбираемых элементов.
Спасибо всем за ответы, но можно решение без использования функций? До этого я еще не дорос Идеально будет сделать все по образцу: Код: http://codepad.org/mjuhN3fg или http://ideone.com/6RqNUq Заранее премного благодарен !!!
Ну так там готовое решение, и две встроенные функции для работы с массивами. Переходишь на php.net смотришь доку по этим функциям. ) Вашпе, вроде у тебя есть уже вариант без использования функций). --- Добавлено --- @TeslaFeo, клац клац пару раз по кнопке, и готово имя для брата))
Есть то оно есть, но полное имя в конце не выдает(( --- Добавлено --- @TeslaFeo, клац клац пару раз по кнопке, и готово имя для брата)) вот советую, отличное имя
Я понимаю, что вам наверное насрать, но я сделал!!!! САМ!!!! каефффффф..... Спасибо всем за помощь) PHP: <?php error_reporting(-1); $letters = array( 'ko', 'i', 'dzy', 'mi', 'sa', 'ky', 'ra', 'da', 'chi', 'a', 'ki', 'mi', 'na', 'go', 'ha', 'ry' ); $name = ''; for ($i = 0; $i <= 3; $i++) { $rand = rand(0, count($letters)-1); echo 'Chislo '. $rand. ' slog - '; echo $letters[$rand]; echo "<br>"; $name[$i] = $letters[$rand]; } $finally = implode('',$name); echo 'Ispolzyi ima - '.$finally.'! Ne progadaesh!'; ?> Вот бы еще с большой буквы имя сделать... Ну не все сразу
@dub13, сделал через жопу. Тебе уже подсказку давали выше) Беда в том, что ты не вникаешь). --- Добавлено --- PHP: $letters = array( 'Ко', 'и', 'дзу', 'ми', 'са', 'ку', 'ра', 'да', 'чи', 'а', 'ки', 'ми', 'на', 'го', 'ха', 'ру' ); /** * Формат возвращаемых данных: * * array ( * 'syllables' => * array ( * 3 => 'ми', * 8 => 'чи', * 10 => 'ки', * 11 => 'ми', * ), * 'word' => 'Мичикими', * ) * * @param array $letters * @param int $syllables количество слогов для формирования слова * @return array массив со слогами и словом */ function generateName($letters, $syllables) { return array_reduce(array_rand($letters, $syllables), function($carry, $item) use ($letters) { $carry['syllables'][$item] = $letters[$item]; if (!isset($carry['word'])) { $carry['word'] = mb_convert_case($letters[$item], MB_CASE_TITLE, "UTF-8"); } else { $carry['word'] .= $letters[$item]; } return $carry; }); } //Использование $result = generateName($letters, 4); foreach ($result['syllables'] as $key => $val) { echo "Выпал ключ <b>$key</b> слог <b>$val</b><br>"; } echo "<br>"; echo "Слово: {$result['word']}"; Вот законченное решение.