Notice
Recent Posts
Recent Comments
Tags
- XSS방어
- jquery 바코드생성
- XSS PHP
- javascript 유효성체크
- 파일업로드 체크
- asp.net dropdownlist
- asp.net core Select
- 바코드 스캔하기
- javascript 바코드스캔
- ViewBag
- 바코드 생성하기
- 404에러페이지
- php 캐쉬제거
- javascript redirection
- ASP.Net Core 404
- 맥 오라클설치
- 강제이동
- ViewData
- jquery 바코드
- 말줄임표시
- 하드 윈도우 복사
- django 엑셀불러오기
- asp.net Select
- 파일업로드 유효성체크
- TempData
- SSD 복사
- 타임피커
- 하드 마이그레이션
- Mac Oracle
- javascript 바코드 생성
웹개발자의 기지개
[PHP] 2차 연관배열에서 특정 필터순서로 배열 요소 재정렬하기 본문
실무에서 많이 필요한 경우가 많다.
배열내의 요소들중에서 필터링하여 특정 요소 순서로 전체 배열 요소를 뿌려 주고 싶을때,
[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
26
27
28
29
30
31
32
33
34
|
<?
// 주어진 배열
$arrangeArr = array(
array('no' => 2, 'place' => 'place02', 'e_type_' => '기획', 'event_title' => "안녕하세요"),
array('no' => 12, 'place' => 'place05', 'e_type_' => '운영', 'event_title' => "행사있어요"),
array('no' => 1, 'place' => 'place01', 'e_type_' => '기획', 'event_title' => "테스트1"),
array('no' => 5, 'place' => 'place02', 'e_type_' => '행사', 'event_title' => "고고싱"),
array('no' => 22, 'place' => 'place04', 'e_type_' => '기획', 'event_title' => "건강하세요"),
array('no' => 4, 'place' => 'place11', 'e_type_' => '운영', 'event_title' => "우유주세요"),
);
print_r($arrangeArr);
//var_dump($arrangeArr);
echo "<br><br>";
// 필터링할 순서
$order = array('place01', 'place02', 'place10', 'place03', 'place11', 'place04', 'place05');
// 필터링된 배열
$filteredArr = array_filter($arrangeArr, function($item) use ($order) {
return in_array($item['place'], $order);
});
// 순서대로 정렬
usort($filteredArr, function($a, $b) use ($order) {
return array_search($a['place'], $order) - array_search($b['place'], $order);
});
// 결과 출력
print_r($filteredArr);
?>
|
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
|
<?
$arrangeArr = array(
array('no' => 2, 'place' => 'place02', 'e_type' => '기획', 'event_title' => "안녕하세요"),
array('no' => 12, 'place' => 'place05', 'e_type' => '운영', 'event_title' => "행사있어요"),
array('no' => 1, 'place' => 'place01', 'e_type' => '기획', 'event_title' => "테스트1"),
array('no' => 5, 'place' => 'place02', 'e_type' => '행사', 'event_title' => "고고싱"),
array('no' => 22, 'place' => 'place04', 'e_type' => '기획', 'event_title' => "건강하세요")
);
// 정렬 우선 순위 설정
$order = array('place01', 'place02', 'place10', 'place03', 'place11', 'place04', 'place05');
// usort()와 사용자 정의 비교 함수를 사용하여 배열을 정렬
usort($arrangeArr, function ($a, $b) use ($order) {
$indexA = array_search($a['place'], $order);
$indexB = array_search($b['place'], $order);
// 배열 $order에 없는 항목은 배열의 끝으로 간주
if ($indexA === false) $indexA = count($order);
if ($indexB === false) $indexB = count($order);
return $indexA <=> $indexB;
});
// 결과 출력
print_r($arrangeArr);
?>
|
cs |
'PHP' 카테고리의 다른 글
[PHP] 이름부분에 '*' 형태로 마스킹 처리하기 (0) | 2024.06.18 |
---|---|
[PHP] 유용한 실무팁 7 - 토글 (toggle) 작업하기 (0) | 2024.05.14 |
[PHP] 큰 이미지 업로드시 썸네일 이미지 생성중에 에러날때 (thumnail) (1) | 2024.04.17 |
[PHP] XSS 방어용 필터링 하기2 (주소창에서 바로 막기) (0) | 2024.04.17 |
[PHP] XSS 방어용 필터링 하기1 (GET/POST 변수들 막기) (0) | 2024.04.16 |
Comments