Notice
Recent Posts
Recent Comments
Tags
- XSS방어
- ASP.Net Core 404
- php 캐쉬제거
- 바코드 생성하기
- 하드 윈도우 복사
- 하드 마이그레이션
- asp.net core Select
- asp.net dropdownlist
- jquery 바코드생성
- 말줄임표시
- 타임피커
- JavaScript
- asp.net Select
- asp ftp
- XSS PHP
- ViewData
- Mac Oracle
- 원격ftp
- django 엑셀불러오기
- 강제이동
- asp.net core swagger
- 맥 오라클설치
- simpe ftp
- javascript 바코드 생성
- swagger 500 error
- SSD 복사
- javascript redirection
- 404에러페이지
- TempData
- ViewBag
웹개발자의 기지개
[PHP] 유용한 실무팁 11 - 문자열 요소 병합 (중복은 하나만), 새로 추가된 문자열로 업데이트 (기존 요소가 없으면 바로 삭제) 본문
PHP
[PHP] 유용한 실무팁 11 - 문자열 요소 병합 (중복은 하나만), 새로 추가된 문자열로 업데이트 (기존 요소가 없으면 바로 삭제)
웹개발자 워니 2025. 6. 24. 21:44실무에서 다소 자주 쓰이는 문자열 요소값에 대하여 다음의 2가지 사항에 대하여 함수화 하여 만들어 봤다.
특히 SQL 상의 키값 숫자 요소들로 여러개를 한곳으로 묶어서
220,45,2,14 이런식으로 문자열형식으로 DB 에 저장해서 이를 바탕으로 조회하고 업데이트 하는 백엔드작업이 실무에서 다양하게 자주 쓰인다.
이때 다음의 소스가 유용할 것이다.
1. 문자열 요소 병합하기 (중복되는 요소값은 하나만 나오게)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?
function merge_unique_keys($originalStr, $newKeysStr) {
// 문자열을 배열로 변환
$originalArr = explode(',', $originalStr);
$newKeysArr = explode(',', $newKeysStr);
// 배열 병합
$mergedArr = array_merge($originalArr, $newKeysArr);
// 중복 제거
$uniqueArr = array_unique($mergedArr);
// 정수형으로 정렬하고 문자열로 변환
$uniqueArr = array_map('trim', $uniqueArr); // 공백 제거
sort($uniqueArr, SORT_NUMERIC); // 숫자 정렬
// 다시 문자열로 변환
return implode(',', $uniqueArr);
}
// 예제 사용
$str = "20,45,2";
$str = merge_unique_keys($str, "2,11,45,20");
echo $str; // 결과: 2,11,20,45
?>
|
cs |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?
function merge_unique_keys($originalStr, $newKeysStr) {
// 문자열을 배열로 변환하고 공백 제거
$originalArr = array_map('trim', explode(',', $originalStr));
$newKeysArr = array_map('trim', explode(',', $newKeysStr));
// 빈 문자열 제거
$originalArr = array_filter($originalArr, 'strlen');
$newKeysArr = array_filter($newKeysArr, 'strlen');
// 배열 병합 및 중복 제거
$mergedArr = array_unique(array_merge($originalArr, $newKeysArr));
// 숫자 정렬
sort($mergedArr, SORT_NUMERIC);
// 문자열로 변환
return implode(',', $mergedArr);
}
// 예제
$str = "363,361";
$str = merge_unique_keys($str, "360");
echo $str; // 결과: 360,361,363
?>
|
cs |
2. 새로운 문자열 요소값으로 업데이트 할때, 새로운 값은 추가하고 기존에 있던 요소가 없으면 그값만 삭제되도록
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?
function update_keys($originalStr, $newKeysStr) {
// 문자열 → 배열
$originalArr = explode(',', $originalStr);
$newKeysArr = explode(',', $newKeysStr);
// 공백 제거
$originalArr = array_map('trim', $originalArr);
$newKeysArr = array_map('trim', $newKeysArr);
// 숫자 형태로 정렬
sort($newKeysArr, SORT_NUMERIC);
// 중복 제거
$uniqueArr = array_unique($newKeysArr);
// 새로운 키 중 기존 키에 존재했던 것만 유지할 필요 없다면 아래 줄 생략 가능
// 하지만 요청하신대로는 기존 키에 없으면 제거하므로 위 줄 그대로 사용
// 최종 결과를 문자열로 반환
return implode(',', $uniqueArr);
}
// 예제
$str = "20,45,2";
$str = update_keys($str, "11,45,20,1");
// "11","1" 이 새로 들어오고 기존에 없던 값이면 포함됨, 그런데, 기존에 "2"는 새로 들어온 "2"가 없으므로 삭제
echo $str; // 결과: 1,11,20,45
?>
|
cs |
'PHP' 카테고리의 다른 글
| [PHP] Ubuntu 에서 PHP 설치 - nginx , php.ini 설정하기 (1) | 2025.07.21 |
|---|---|
| [PHP] CSV 일괄 업로드 작업 (4) | 2025.06.27 |
| [PHP] 현재 디렉토리 사용량 (0) | 2025.06.23 |
| [PHP] 영상 재생시 실제 URL 로 직접 접근하여 재생하기 방지 (0) | 2025.05.22 |
| [PHP] 배열내 특정 요소 값을 교체하기 (치환, 변경) (0) | 2025.03.27 |
Comments