현재 위치: > 최신 기사 목록> 보다 복잡한 정렬을 위해 array_multisort와 함께 krsort 함수를 사용하는 방법은 무엇입니까?

보다 복잡한 정렬을 위해 array_multisort와 함께 krsort 함수를 사용하는 방법은 무엇입니까?

gitbox 2025-09-18
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 전면 섹션(기사의 내용과 관련이 없습니다.)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 기사를 읽을 수 있습니다!&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 시간:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
제목: 방법 krsort 기능 및 array_multisort 더 복잡한 정렬에 사용하십시오?

존재하다 PHP 가운데,배열 정렬은 일반적인 작업입니다。krsort 그리고 array_multisort 그들은 두 가지 강력한 기능입니다,그러나 사용은 다릅니다。本文할 것이다详细说明방법它们结合사용,보다 복잡한 정렬 요구 사항을 달성합니다。
*/</span>

<span class="hljs-comment">/*
1. krsort 소개
krsort 배열의 키에 따라 내림차순으로 정렬하는 데 사용됩니다.(큰 것부터 작은 것까지)。구문은 다음과 같습니다:
krsort(array &amp;$array, int $sort_flags = SORT_REGULAR): bool

예:
*/</span>
</span><span><span class="hljs-variable">$data</span></span><span> = [
    </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </span><span><span class="hljs-number">3</span></span><span>,
    </span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>,
    </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>,
];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>); </span><span><span class="hljs-comment">// 출력 배열은 키의 내림차순으로 배열되었습니다 ['c'=&gt;3,'b'=&gt;2,'a'=&gt;1]</span></span><span>

<span class="hljs-comment">/*
2. array_multisort 소개
array_multisort 다중 배열 또는 다차원 배열을 함께 정렬 할 수 있습니다,복잡한 분류 요구에 매우 적합합니다。가치별로 분류 할 수는 없습니다,정렬 순서를 지정할 수도 있습니다(오름차순 순서/하강 순서)그리고类型。
*/</span>

<span class="hljs-comment">/*
3. 할 것이다 krsort 그리고 array_multisort 함께 사용하십시오
다차원 배열이 있다고 가정합니다,需要先按键하강 순서排列,再按某个子元素的值오름차순 순서排序,다음 단계를 따라갈 수 있습니다:
*/</span>
</span><span><span class="hljs-variable">$users</span></span><span> = [
    </span><span><span class="hljs-string">'user3'</span></span><span> =&gt; [</span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">25</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">88</span></span><span>],
    </span><span><span class="hljs-string">'user1'</span></span><span> =&gt; [</span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">30</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">92</span></span><span>],
    </span><span><span class="hljs-string">'user2'</span></span><span> =&gt; [</span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">22</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">95</span></span><span>],
];

</span><span><span class="hljs-comment">// 첫 번째 단계:按键하강 순서</span></span><span>
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>);

</span><span><span class="hljs-comment">// 2 단계:정렬 할 열을 추출하십시오</span></span><span>
</span><span><span class="hljs-variable">$ages</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span>);
</span><span><span class="hljs-variable">$scores</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span>);

</span><span><span class="hljs-comment">// 3 단계:사용 array_multisort 다차원 분류를 수행하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">array_multisort</span></span><span>(</span><span><span class="hljs-variable">$ages</span></span><span>, SORT_ASC, </span><span><span class="hljs-variable">$scores</span></span><span>, SORT_DESC, </span><span><span class="hljs-variable">$users</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>);

<span class="hljs-comment">/*
결과에 대한 설명:
1. 첫 번째 패스 krsort 按键하강 순서排列用户。
2. 然后사용 array_multisort 对用户的年龄오름차순 순서排列,나이가 동일하다면,则按分数하강 순서排列。
3. 마침내 $users 数组既保持了按键하강 순서的初始顺序,값별로 복잡한 분류를 구현합니다。

4. 팁
- 배열이 클 때,먼저 사용하십시오 krsort 키를 정렬하십시오,다시 사용하십시오 array_multisort 정렬 값,명확한 분류 로직을 보장 할 수 있습니다。
- array_multisort 멀티 컬럼 정렬을 지원합니다,사용 array_column 해당 열을 추출하는 것이 가장 편리합니다。
- 배열이 연관 배열 인 경우,먼저 기억하십시오 krsort 다시 사용하십시오 array_multisort 리인덱스,키 가치 불일치를 피하기 위해。
*/</span>

<span class="hljs-comment">/*
요약:
할 것이다 krsort 그리고 array_multisort 结合사용,복잡한 다차원 배열 분류 요구 사항을 구현할 수 있습니다。krsort 负责按键的하강 순서排序,array_multisort 그런 다음 배열 값에 대해 여러 조건을 수행 할 수 있습니다.、다형 분류。이 조합 방법은 유연하고 효율적입니다,다양한 실제 응용 시나리오에 적합합니다,예를 들어, 사용자 데이터 관리、보고서 분류 등。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>