배열의 모든 요소를 순회하며 값을 변경해야 할 때 대부분의 개발자는 foreach 루프를 쓴다. 하지만 요소를 제자리에서 수정하려면 참조(&)를 사용해야 하는데, 이 부분을 제대로 이해하지 못하면 의도치 않은 결과가 나온다. 이번에는 array_walk() 함수로 어떻게 간단하게 배열을 일괄 수정할 수 있는지, 그리고 언제 쓰면 좋은지 완벽하게 정리하겠다.···
백엔드 API나 DB 연동 과정에서 전달받은 중첩 다차원 배열에서 특정 깊이의 키 값만 모아 추출할 때, 매번 foreach와 isset()을 지저분하게 중첩 사용해본 경험이 있을 것이다. 다만 PHP 기본 제공 함수만으로는 깊은 계층의 데이터(예: 'users.*.profile.name')나 객체가 혼합된 복잡한 구조를 깔끔하게 뽑아내기 어렵다는 문제가 ···
다차원 설정 배열이나 외부 API 응답 데이터를 병합할 때 PHP의 기본 함수인 array_merge_recursive()를 썼다가 기존 값이 덮어씌워지지 않고 원치 않게 배열로 감싸지는 이상한 현상을 경험해봤을 것이다.다만 왜 이런 동작이 발생하는지, 기본 함수만으로는 다차원 연관 배열의 깊은 병합(Deep Merge)을 제대로 처리할 수 없다는 사실을 ···
DB에서 데이터를 조회한 뒤 PHP 단에서 특정 키(Key) 기준으로 연관 배열 목록을 재정렬해야 할 때, 매번 usort()나 array_multisort()의 복잡한 익명 함수 문법 때문에 애를 먹은 적이 있을 것이다.다만 대부분의 개발자들은 array_multisort()에 인자를 전달하는 방식이나 usort()의 우주선 연산자() 작동 원리를 정확히···
배열 처리 작업을 하다 보면 두 개의 배열을 하나로 병합해야 하는 상황이 자주 생긴다. 예를 들어 CSV 파일에서 헤더 행과 데이터 행을 읽었을 때, 각 데이터를 헤더와 매핑해야 하거나, API 응답에서 이름 배열과 값 배열을 받았을 때 이를 연결하는 경우다. 다만 대부분의 개발자들은 반복문으로 일일이 처리하거나, 존재하지 않는 함수를 찾아 헤매는 경우가 ···
관리자 페이지나 화면 모니터링 로그를 개발하다가 사용자의 이메일, 전화번호, 이름 같은 민감한 개인정보가 그대로 화면에 노출되는 상황을 경험해봤을까?관리자 페이지나 시스템 로그 파일에 개인정보를 날것(Raw Data) 그대로 남겨두는 것은 개인정보보호법 및 ISMS 인증 기준 위반일 뿐만 아니라 심각한 데이터 유출 사고로 이어질 수 있다. 다만 매번 화면을···
mb_str_split PHP: mb_str_split - Manual PHP: mb_str_split - Manual www.php.net/manual/en/function.mb-str-split.php PHP 함수중 하나인mb_str_split 의 경우 PHP 7.4 이상에서 사용이 가능한 함수로 하위 버전에서는 사용이 불가능하다. 그래서 대충 새로 ···
이번에 소개할 서포트 함수는 HTML 소스코드에서 특정 태그의 속성값을 배열로 추출할 수 있는 함수다. 보통 이미지 태그에서 src 속성을 추출 하기위해 많이 사용하는 정규식이 있는데 해당 정규식을 조금 커스텀하여 모든 태그의 특정 속성들을 전부 가져올 수 있도록 개선해보았다. 사용방법 및 예제는 아래를 참고하길 바란다. get_tag_data_all 함수···