php for 문으로 만들어진 테이블 정렬 방법 채택완료
안녕하세요.
php for 문으로 만들어진 table중 특정 열의 값들을 기준으로 내림차순 정렬을 하고 싶습니다.
javascript 로 sortable이 먹혀서 클릭시 테이블 순서 바꾸는 것도 가능은 한 스크립트인데요...
javascript를 이용해 재정렬이 가능하지 않을까 싶습니다...
버튼 같은거 누르지 않고 바로 숫자로 된 열을 기준으로 큰 숫자 부터 차례대로 정리되어 보여졌으면 좋겠습니다.
어떤 방법들이 있는지
고수님들 많은 도움 부탁드립니다.
답변 3개
자바스크립트로 처리하는 방법입니다.
- https://www.cssscript.com/tag/table-sort/
+ array_multisort() - 다차원 정렬은 이 함수가 유용합니다. 3번째 예제 참고!
- https://www.php.net/manual/en/function.array-multisort
- http://docs.php.net/manual/kr/function.array-multisort.php
답변에 대한 댓글 3개
CFB 값에 값이 없거나, 숫자 아닌 값이 들어간 값도 보이는데 무시합니다.
CFB 기준으로 내림차순 정렬해서 다른 배열에서도 동일한 값 표시는
아래처럼 하면 됩니다.
[code]
$data=array (
'd' =>
array (
'img' =>
array (
0 => 'testest',
1 => 'testestsets',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'link' =>
array (
0 => 'testets',
1 => 'testsets',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'member' =>
array (
0 => 'testests',
1 => 'test',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'CFB' =>
array (
0 => '500000',
1 => '60000000',
2 => '',
3 => '2ㅅㄷㄴ',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
),
);
arsort($data['d']['CFB']); // 역순 정렬, 키 유지
foreach ( $data['d']['CFB'] as $key=>$CFB ) {
$img = $data['d']['img'][$key];
$link = $data['d']['link'][$key];
$member = $data['d']['member'][$key];
// $CFB
/* 출력
testestsets, testsets, test, 60000000
testest, testets, testests, 500000
test, test, test, 2ㅅㄷㄴ
:
*/
}
[/code]
+ arsort()
- https://www.php.net/manual/en/function.arsort.php
- http://docs.php.net/manual/kr/function.arsort.php
테이블 2개를 배열로 불러와서 뿌려주고 정렬하는 부분에서 울고있었는데 ㅠㅠ
자바스크립트로 처리하는 방법의 답변이 도움되었습니다! 감사합니다!!
댓글을 작성하려면 로그인이 필요합니다.
$d= array(
0=>array( 'img'=>'...', 'link'=>'...', 'member'=>'....', 'CFB'=>'...'),
1=>array( 'img'=>'...', 'link'=>'...', 'member'=>'....', 'CFB'=>'...'),
2=>array( 'img'=>'...', 'link'=>'...', 'member'=>'....', 'CFB'=>'...'),
);
이런 식으로 배열이 되어 있어야 하는데....
https://www.php.net/manual/en/function.array-multisort.php
array_multisort()
함수를 검토해 보세요.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 5개
usort()를 사용하시면 됩니다.
[code]$data=array (
'd' =>
array (
'img' =>
array (
0 => 'testest',
1 => 'testestsets',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'link' =>
array (
0 => 'testets',
1 => 'testsets',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'member' =>
array (
0 => 'testests',
1 => 'test',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'CFB' =>
array (
0 => '500000',
1 => '60000000',
2 => '',
3 => '2ㅅㄷㄴ',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
),
); [/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code] $data=array (
'd' =>
array (
'img' =>
array (
0 => 'testest',
1 => 'testestsets',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'link' =>
array (
0 => 'testets',
1 => 'testsets',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'member' =>
array (
0 => 'testests',
1 => 'test',
2 => '',
3 => 'test',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
'CFB' =>
array (
0 => '500000',
1 => '60000000',
2 => '',
3 => '2ㅅㄷㄴ',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
),
);[/code]