Значение ключа в ассоциативном массиве должно состоять из заглавной первой буквы, а остальная часть строчной

Я объявил ассоциативный массив в php и назначил ему ключевые значения, которые состоят из строчных и прописных букв. Мне нужно, чтобы значения ключей в массиве были в верхнем регистре первыми, а остальные строки — в цикле foreach. Новичок в программировании, поэтому, пожалуйста, будьте милы.

$city=array('Peter'=>'LEEDS',
'Kat'=>'bradford',
'Laura'=>'wakeFIeld');
print_r($city);
echo '<br />';

foreach($city as $name => $town) {

$town = ucfirst($town);
$town = strtolower($town);
print_r($city);

}

0

Решение

Вам нужно сначала прописать ключ, чем использовать ucfirst. Ваш код будет выглядеть так:

$city = array ( "Peter" => "LEEDS", "Kat" => "bradford", "Laura" => "wakeFIeld");
print_r ( $city);
echo "<br />";

foreach ( $city as $key => $value)
{
$city[$key] = ucfirst ( strtolower ( $value));
}
print_r ( $city);
2

Другие решения

Вы почти там, но ваши звонки ucfirst() а также strtolower() неправильный путь …

$town = strtolower($town);
$town = ucfirst($town);

Это преобразует все это в нижний регистр, а затем в верхний регистр первая буква.

Или немного сократить его

$town = ucfirst(strtolower($town));

Вы также должны изменить свой foreach() чтобы позволить ему обновить город …

foreach($city as $name => &$town) {

Добавить & чтобы позволить ему обновить город. Также переместите свой последний

print_r($city);

вне цикла.

1

По вопросам рекламы [email protected]