테스트 사이트 - 개발 중인 베타 버전입니다

php for 문으로 만들어진 테이블 정렬 방법 채택완료

윤광섭 3년 전 조회 4,022

안녕하세요.

php for 문으로 만들어진 table중 특정 열의 값들을 기준으로 내림차순 정렬을 하고 싶습니다.

 

javascript 로 sortable이 먹혀서 클릭시 테이블 순서 바꾸는 것도 가능은 한 스크립트인데요...

javascript를 이용해 재정렬이 가능하지 않을까 싶습니다...

 

버튼 같은거 누르지 않고 바로 숫자로 된 열을 기준으로 큰 숫자 부터 차례대로 정리되어 보여졌으면 좋겠습니다.

어떤 방법들이 있는지

고수님들 많은 도움 부탁드립니다.

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
B
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개

윤광섭
3년 전
배열이 요따위라 감이 잘 안잡히네요....ㅜㅜ
[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]
B
BiHon
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
김호랑
3년 전
https://www.cssscript.com/tag/table-sort/

테이블 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()

함수를 검토해 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

for loop 이전에 사용할 배열을

php sort() 한번 해 주시면 될 텐데요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

윤광섭
3년 전
배열이 다차원 배열이라서 그 열에서만 먹고 다른 열은 그대로 고정이더라구요;;
엑스엠엘
3년 전
https://www.php.net/manual/en/function.usort.php
usort()를 사용하시면 됩니다.
윤광섭
3년 전
배열이 요따위라 감이 잘 안잡히네요...ㅜㅜ

[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]
엑스엠엘
3년 전
정렬 기준이 어떤 항목인가요?
윤광섭
3년 전
CFB 숫자로 되어 있는 항목을 기준으로 순서를 정리하고 싶습니다!! 알려주신 링크 보고 차근차근 해보고 있는데, 안되던지 CFB열만 적용되고 나머지는 움직일 생각을 하지 않네요ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인