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

wr_1 여분필드에 "|" 기준으로 값을 받은 경우 리스트정렬 채택완료

sinbi 2년 전 조회 6,588

보통, wr_1 여분필드 자체로만 정렬할 땐 아래처럼 하잖아요.
<?php echo subject_sort_link('wr_1', $qstr2, 1) ?>wr_1 기준으로 정렬</a>

 

wr_1을 | 기준으로 쪼개서 wr_1[1] 기준으로 정렬하려면 어떻게 해야 할까요?

(예) wr_1값이 이런식으로 저장된 경우, abc순으로 정렬 기준 잡기 
1|a
2|b
3}c

...

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

답변 5개

채택된 답변
+20 포인트
플라이
2년 전

$wr_1_arr=explode("|",$wr_1);

하시면 됩니다.

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

답변에 대한 댓글 2개

s
sinbi
2년 전
쪼개서 쓰는 건 아는데, $wr_1_arr[1] 기준으로 게시글을 리스트 정렬시켜보고 싶어서요.
플라이
2년 전
참고 주소 남깁니다.

https://php.365ok.co.kr/function.rsort.php

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

s
sinbi Expert
2년 전

세 분 모두 답변 감사합니다. 주말 잘 보내세요 ~

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

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

wr_1을 | 기준으로 쪼개서 wr_1[1]이 정렬 기준이면

둘째 값인데

substring_index()함수를 쓰면 가능하겠지만

실용적이지는 않겠죠.

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

답변에 대한 댓글 1개

s
sinbi
2년 전
조언 감사합니다.
ps. 답변 채택 안 한 상태였다면, 이 답변을 채택.

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

다음과 같은 방법으로 하면 되지 않을까 합니다.

explode 함수를 사용하여 문자열을 분할하고, usort 함수를 사용하여 정렬하면 되지 않을까 합니다

</p>

<p><?php

// 예시 데이터

$wr_1_values = array("1|a", "2|b", "3|c");</p>

<p>// '|'를 기준으로 문자열을 분할하고 wr_1[1] 값을 기준으로 정렬

usort($wr_1_values, function($a, $b) {

    $a_parts = explode('|', $a);

    $b_parts = explode('|', $b);

    return strcmp($a_parts[1], $b_parts[1]);

});</p>

<p>// 정렬된 결과 출력

foreach ($wr_1_values as $item) {

    echo $item . "\n";

}

?>

 

Python으로 할 경우 다음과 같이 할 수 있습니다.

</p>

<p># 예시 데이터

wr_1_values = ["1|a", "2|b", "3|c"]</p>

<p># '|' 기준으로 쪼개고 wr_1[1] 값을 기준으로 정렬

sorted_wr_1 = sorted(wr_1_values, key=lambda x: x.split('|')[1])</p>

<p># 정렬된 결과 출력

for item in sorted_wr_1:

    print(item)

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

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

M
2년 전

정렬을 하실려면 wr_1을 분리해서 wr_1 | wr_2 이런식으로 나눠서 저장을 하시는게 편하실껍니다.

자리수가 정해져 있다면 잘라서라도 하겠지만 임의에 데이터를 분리해서 정렬할때는 효용성이 떨어질듯 합니다.

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

답변에 대한 댓글 1개

s
sinbi
2년 전
걍, 궁금해서요..^^;

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

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

로그인