function reverse_vowels($word) {
$vowels = implode(array_filter(str_split($word),
function ($c) {
return preg_match('/[ayeiou]/i', $c);
}));
function ($i) use ($word, $vowels, &$v)
function reverse_vowels($word) {
$vowels = implode(array_filter(str_split($word),
function ($c) {
return preg_match('/[ayeiou]/i', $c);
}));
$v = 0;
$reverse = implode(array_map(
function ($i) use ($word, $vowels, &$v)
{
$is_vowel = preg_match('/[ayeiou]/', $word[$i]);
return $is_vowel ? $vowels[strlen($vowels) - 1 - $v++] : $word[$i];
},
range(0, strlen($word) - 1)));
return $reverse;
}
function reverse_vowels($word) {
$vowels = [];
foreach(str_split($word) as $c) {
if (preg_match('/[ayeiou]/i', $c)) {
$vowels[] = $c;
}
}
$v = 0;
$reverse = '';
for ($i=0; $i < strlen($word); $i++) {
$is_vowel = preg_match('/[ayeiou]/i', $word[$i]);
$reverse .= $is_vowel ? $vowels[count($vowels) - 1 - $v++] : $word[$i];
}
return $reverse;
}
preg_match_all('/[ayeiou]/i', $word, $matches);
$vowels = $matches[0];
<?php
function reverse_vowels($word)
{
// получаем строку всех гласных букв. в слове
$vowels = implode( // объединяем массив в строку
array_filter(// получаем массив всех гласных букв. в слове
str_split($word), // разбиваем слово на буквы
function ($c) { // проверяем если буква гласная [ayeiou]
return preg_match("/[ayeiou]/i", $c);
}
)
);
echo "" . $vowels . PHP_EOL;
$v = 0;
$reverse = implode(// объединяем массив в строку
array_map(
function ($i) use ($word, $vowels, &$v) {// &$v переменная переданная по ссылке
$is_vowel = preg_match("/[ayeiou]/", $word[$i]);
return $is_vowel ? $vowels[strlen($vowels) - 1 - $v++] : $word[$i];
},
range(0, strlen($word) - 1) // массив [0, количество букв в слове - 1]
)
);
return $reverse;
}
echo reverse_vowels('environment');