본문 바로가기

PHP87

[PHP] range() + array_filter()로 짝수/홀수 필터링하기 안녕하세요. 오늘은 range()함수와 array_filter() 함수를 활용하여 숫자 배열을 만들고 짝수/홀수를 필터링 해보겠습니다. range(start, end, step)지정한 범위의 숫자 배열을 생성합니다. - range(1, 10) → [1,2,3,4,5,6,7,8,9,10] - range(0, 20, 5) → [0,5,10,15,20] array_filter(array, callback)배열의 각 요소를 순회하며 콜백 함수의 조건에 맞는 값만 필터링해서 반환합니다. - 짝수만 필터링 → $n % 2 === 0 - 홀수만 필터링 → $n % 2 !== 0 예제 코드입니다. ";print_r($numbers);// 짝수만 필터링$even = array_filter($numbers, functi.. 2025. 8. 24.
[PHP] explode()와 implode()로 문자열을 배열로, 배열을 문자열로 변환하기 PHP 개발을 하다 보면 콤마(,)나 다른 구분자로 연결된 하나의 긴 문자열을 다뤄야 할 때가 많습니다. 예를 들어, 사용자가 입력한 태그 데이터("PHP,JSP,ASP,JavaScript")나 CSV 파일의 한 줄 같은 데이터가 있습니다. 반대로, 배열에 담긴 여러 데이터를 하나의 문자열로 합쳐서 데이터베이스에 저장하거나 화면에 출력해야 할 경우도 많습니다. 이럴 때 사용할 수 있는 explode()와 implode()에 대해 알아보겠습니다 explode() 함수는 특정 구분자를 기준으로 문자열을 잘라 배열(array)로 만들어주는 함수입니다. explode(string $separator, string $string, int $limit = PHP_INT_MAX): array $separator: 문.. 2025. 8. 23.
[PHP] 날짜 및 시간 객체 선언하여 다루기 웹 애플리케이션 개발에서 날짜와 시간은 로그인 기록, 게시물 작성 시간, 예약 시스템 등 거의 모든 곳에서 사용되는 중요한 요소입니다. PHP는 날짜와 시간을 다루는 다양한 방법을 제공하지만, 그중에서도 DateTime 객체는 복잡한 날짜 연산을 쉽게 만들어줍니다. 그럼 어디에 사용하면 좋을까요?데이터의 무결성 및 정확성 보장: 로그 및 감사 추적: 누가, 언제, 무엇을 했는지 정확히 기록해야 시스템의 보안을 강화하고 문제 발생 시 원인을 파악할 수 있습니다. 데이터 정합성: 게시물, 댓글, 주문 등 모든 데이터는 생성 시점 정보가 있어야 일관성 있게 관리될 수 있습니다. 비즈니스 로직 구현: 할인 기간, 이벤트 종료일: 특정 기간에만 적용되는 프로모션이나 이벤트의 시작/종료 시점을 정확히 제어해야 합니.. 2025. 8. 10.
[PHP] get_defined_vars() 함수로 정의된 변수 확인하기 안녕하세요. 오늘은 get_defined_vars() 함수를 활용하여 현재 스크립트에서 정의된 모든 변수를 확인해보도록 하겠습니다. get_defined_vars()현재 범위(Scope)에서 정의된 모든 변수와 그 값을 연관 배열(associative array) 형태로 반환합니다.전역 변수, 지역 변수, 슈퍼글로벌($_GET, $_POST 등)까지 포함됩니다. 반환값은 변수 이름을 key로, 변수 값을 value로 가지는 배열입니다.이 배열을 print_r() 또는 var_dump()를 사용해 출력하면, 현재 사용 가능한 모든 변수를 한눈에 확인할 수 있습니다. 예제코드 // 변수 정의$name = "Alice";$age = 25;$is_admin = true;// 함수 예제function show.. 2025. 8. 9.
[PHP]debug_zvfal_dump()로 PHP 내부 동작 엿보기 안녕하세요,오늘은 PHP의 값 복사 vs 참조 동작을 이해할 수 있는 debug_zval_dump()에 대해 알아보겠습니다. debug_zval_dump()debug_zval_dump()는 PHP에서 변수의 내부 구조를 덤프(dump) 하면서, 해당 값이 몇 개의 변수에 의해 참조되고 있는지까지 보여주는 디버깅 함수입니다. 보통은 우리가 $a = 'hello'; $b = $a;처럼 코드를 작성하면,값이 그냥 복사되는 것처럼 보이지만, 실제로 PHP는 복사를 지연시키고,참조(refcount)를 늘려서 성능을 최적화합니다. 이 함수는 아래 상황에 유용합니다. 값이 복사되는 시점(= 실제 메모리 할당 시점)을 알고 싶을 때참조로 인해 값이 어디까지 연결되어 있는지 확인하고 싶을 때PHP가 copy-on-w.. 2025. 7. 26.
[PHP] DatePeriod와 DateInterval 활용하여 반복되는 날짜 자동 처리하기 안녕하세요, 오늘은 DatePeriod와 DateInterval 활용하여 반복되는 날짜를 자동으로 처리해보도록 하겠습니다. DatePeriod 클래스PHP에서 제공하는 클래스로, 시간 간격을 나타내는 클래스입니다.'P1D' → 1일'P1W' → 1주'P1M' → 1달'PT1H' → 1시간등 다양한 형식을 지원합니다. DateInterval 클래스PHP에서 제공하는 클래스로, 특정 간격(DateInterval)에 따라 반복되는 날짜들을 만들어주는 클래스입니다. 예제 코드 add($interval));// 출력echo "📆 매주 일요일 일정 리스트:";foreach ($period as $date) { if ($date->format('w') == 0) { // 일요일만 출력 (0 = Sun.. 2025. 7. 18.
[PHP] array_flip() 로 키-값 역전하기 안녕하세요, 오늘은 array_flip() 함수를 활용하여 키-값을 역전해보도록 하겠습니다. array_flip() array_flip() 함수는 배열의 키(key)와 값(value)을 서로 뒤바꾼 새 배열을 반환합니다. 단, 값은 반드시 고유해야 하며(중복되면 마지막 것이 적용됨), 스칼라(문자열 또는 숫자)여야 합니다.array_flip(array $array): array 간단한 예제 코드 입니다. 'apple', 'b' => 'banana', 'c' => 'cherry'];$flipped = array_flip($fruits);print_r($flipped);?> 결과 Array ( [apple] => a [banana] => b [cherry] => c ) 위 예제처럼 간단하.. 2025. 7. 11.
[PHP] array_merge_recursive() 다차원 배열 병합 안녕하세요, 오늘은 다차원 배열이 섞여있는 상황에서 여러 배열을 하나로 합칠 수 있는 array_merge_recursive() 함수에 대해 알아보겠습니다. array_merge_recursive() array_merge_recursive() 함수는 여러 배열을 재귀적으로 병합합니다. 즉, 같은 키가 겹치면 단순 덮어쓰기 하는 것이 아니라, 각각의 값을 배열로 묶어 합칩니다. array_merge_recursive(array ...$arrays): array array_merge()와의 차이점 $array1 = ['color' => 'red'];$array2 = ['color' => 'blue'];print_r(array_merge($array1, $array2));print("");print_r.. 2025. 7. 6.
[PHP] array_diff_assoc() 함수로 값과 키까지 비교하기 안녕하세요, 오늘은 array_diff_assoc() 함수를 활용하여 키와 값이 모두 동일한 항목을 기준으로 배열의 차이를 구해보도록 하겠습니다. array_diff_assoc() array_diff_assoc() 함수는 PHP에서 배열의 차이점을 비교할 때 사용되며, 값뿐만 아니라 키까지 정확히 일치해야 동일한 것으로 봅니다. array_diff_assoc(array $array1, array $array2): array $array1과 $array2를 비교하여, $array1에 있지만 $array2에는 없거나 다르게 있는 (값 또는 키) 요소만 반환함단순히 값이 같은지를 비교하는 array_diff()와 달리, array_diff_assoc()는 키와 값이 모두 같아야 동일하다고 판단값이 같아도.. 2025. 6. 29.