Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как перевести camelCase в snake_case и обратно

Короткий ответ

Поставьте подчёркивание перед каждой заглавной буквой и переведите строку в нижний регистр:

<?php
 
echo strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', 'userFirstName'));

Результат:

user_first_name

Обратно в camelCase

Сделайте заглавной первую букву каждого слова, уберите подчёркивания и верните строчную первую букву:

<?php
 
echo lcfirst(str_replace('_', '', ucwords('user_first_name', '_')));

Результат:

userFirstName

Ключи массива

Так преобразуют ключи данных, пришедших из JavaScript:

<?php
 
$input = ['firstName' => 'Anna', 'birthDate' => '1995-08-20'];
$result = [];
 
foreach ($input as $key => $value) {
    $result[strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', $key))] = $value;
}
 
echo json_encode($result);

Результат:

{"first_name":"Anna","birth_date":"1995-08-20"}

Функции из этого ответа

  • preg_replace — Заменяет всё, что подошло под регулярное выражение.
  • preg_replace_callback — Заменяет совпадения с шаблоном результатом функции.
  • lcfirst — Делает первую букву строки строчной.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.