array_change_key_case()
라는 내장함수가 존재한다. 공식문서
$input_array = array("FirSt" => 1, "SecOnd" => 4);
$output_array = array_change_key_case($input_array, CASE_UPPER));
// ['FIRST' => 1, 'SECOND' => 4]
아니 물론 PHP는 있을만한 건 없고 없을만한 건 있기로 유명한 언어지만 아무리 그래도 그렇지 이런건 왜 따로 있는걸까??? 이유야 여러 가지 있겠지만 오늘 겪은 케이스를 공유 드리자면... 요청헤더 처리할 때 도움이 된다.
각 헤더 필드는 이름 뒤에 콜론(":")과 필드 값으로 구성됩니다. 필드 이름은 대소문자를 안 구분합니다. 출처
그렇다면, 요청헤더를 배열로 처리할 경우, 키 부분을 전부 소문자화하든지 대문자화할 필요가 있는 것이다. 그래서 어제 올라온 PR에 그런 의견을 적었고, 오늘 보니 이렇게 대응이 돼 있었다.
// header 는 대소문자를 가리지 않아 소문자로 일괄 변경
$header = array_change_key_case($header, CASE_LOWER);
이렇게 오늘도 하나 배운 바가 있어 글로 남긴다. 정말 대단하다 PHP!