728x90
반응형
PHP에서 주어진 키의 값으로 연관 배열 배열을 정렬하는 방법
이 기사에서는 PHP에서 주어진 키의 값으로 연관 배열의 배열을 정렬하는 방법을 소개합니다. 여기에는 array_multisort() 함수와 usort() 함수가 포함됩니다.
www.delftstack.com
이 포스트를 참조했습니다.
웹 페이지에서 어느 정보를 불러올 때 DB에서 또는 다중 배열에서 특정 키로 정렬해서 보여줘야할 때가 있다.
필자는 DB에서 어느 값들을 가져왔는데 이 값들에서 관리자가 순서 번호를 지정했다.
그런데 단순하게 받아온 값들은 순서에 상관없이 sql문으로 요청한 필드들의 값이 들어왔다.
관리자의 요구사항은 지정한 순서 번호대로 정렬하여 화면에 보여줘야 된다고 했다.
이때 array_multisort php 함수를 이용할 수 있다.
만약 DB에서 받아온다면 데이터들은 json 형식으로 되어 있을 것이다.
DBData 라고 변수를 선언한다면 다음과 같이 할 수 있겠다.
$DBData = 'DB 데이터 넣기'
$tempArray = array();
foreach($DBData as $key=>$val) {
$tempArray[$key] = $val['원하는 키 값'];
}
array_multisort($tempArray, SORT_ASC, $DBData);
DBData 에 sql 문을 이용하여 필요한 값들을 저장하면 2차원 json 배열이 될 것 이다
예를 들면 다음과 같이 된다.
Array (
[0] => Array ( [serial] => 123 [link] => 123 [number] => 3 )
[1] => Array ( [serial] => 343 [link] => 2345 [number] => 1)
[2] => Array ( [serial] => 235 [link] => 234523 [number] => 2)
)
foreach 문으로 1차원 배열로 분리하면서 key 값은 number라고 지정하면 tempArray에 number 값이 저장된다.
그리고 array_multisort 으로 해당 키로 오름차순으로 정렬하면 다음과 같이 된다.
Array (
[0] => Array ( [serial] => 343 [link] => 2345 [number] => 1 )
[1] => Array ( [serial] => 235 [link] => 234523 [number] => 2 )
[2] => Array ( [serial] => 123 [link] => 123 [number] => 3)
)
이제 다시 foreach 문을 이용해서 해당 값들을 보여주면 된다.
foreach($DBData as $key=>$val) {
print_r ($val['link']);
}
728x90
반응형
'Develop > PHP, HTML' 카테고리의 다른 글
[HTML, js, konva] konva 사용할 때 메모리 누수 방지하기 (2) | 2023.10.05 |
---|---|
[HTML, javascript, konva] Konva 배경그림 넣기, onresize로 반응형 만들기 (0) | 2023.09.26 |
[html, javascript] canvas에 이미지 삽입하기 (0) | 2023.08.08 |
[html, javascript] 동일한 setInterval 반복 호출 막기 (0) | 2023.08.08 |
[PHP, HTML] 게시글에 이미지 파일 넣기 (0) | 2023.07.19 |