Преобразование имен ключей массива из snake_case в PascalCase является распространенной задачей при работе с массивами в PHP. В данном случае пользователь столкнулся с необходимостью изменить стиль именования ключей массива с использованием змеиного регистра (snake_case) на регистр Паскаля (PascalCase), но при этом использовать функцию array_map(), а не цикл foreach.
Пользователь уже имеет функцию для преобразования первого символа в верхний регистр и удаления всех символов подчеркивания. Однако попытка использовать функцию array_walk() не увенчалась успехом, так как она не позволяет изменять ключи массива, только значения.
Подтвержденный ответ:
Если вы не хотите использовать цикл foreach, можно использовать комбинацию функций array_keys(), array_map() и array_combine(), чтобы достичь желаемого результата.
$array = [
'mc_gross' => 10.17,
'protection_eligibility' => 'Eligible',
'address_status' => 'unconfirmed',
'payer_id' => 'STTAC7UV2CVJ4'
];
// Получаем ключи
$keys = array_keys($array);
// Функция для форматирования ключей
function map($key) {
return str_replace(' ', '', ucwords(str_replace('_', ' ', $key)));
}
// Применяем функцию к ключам
$keys = array_map('map', $keys);
// Используем array_combine для сопоставления отформатированных ключей с значениями массива
$array = array_combine($keys, $array);
// Выводим результат
var_dump($array);
Этот код делает то же самое, что и предыдущий, но в более компактной форме.
Альтернативный ответ:
Также был предложен альтернативный подход с использованием функции array_reduce(), который позволяет функционально пройти по массиву и объединить элементы с измененными ключами в результирующий массив.
Этот метод также позволяет достичь желаемого результата, не прибегая к использованию цикла foreach.
В заключение, можно отметить, что существуют различные способы решения поставленной задачи, и выбор конкретного метода зависит от личных предпочтений разработчика и контекста использования.
Преобразование имен ключей массива из стиля написания `snake_case` в `PascalCase` в PHP с использованием функции `array_map` и без применения цикла `foreach`.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS