<span><span><span class="hljs-meta"><?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">"この記事を読んでください!<br>"</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">"<br>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
タイトル: 方法 krsort 関数と array_multisort より複雑なソートに使用してください?
存在する PHP 真ん中,配列ソートは一般的な操作です。krsort そして array_multisort それらは2つの強力な機能です,しかし、使用は異なります。本文意思详细说明方法它们組み合わせて使用します,より複雑な選別要件を達成するため。
*/</span>
<span class="hljs-comment">/*
1. krsort 導入
krsort 配列のキーに従って下降するために使用されます(大部分から小さい)。構文は次のとおりです:
krsort(array &$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> => </span><span><span class="hljs-number">3</span></span><span>,
</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>,
</span><span><span class="hljs-string">'b'</span></span><span> => </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'=>3,'b'=>2,'a'=>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> => [</span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-number">25</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> => </span><span><span class="hljs-number">88</span></span><span>],
</span><span><span class="hljs-string">'user1'</span></span><span> => [</span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-number">30</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> => </span><span><span class="hljs-number">92</span></span><span>],
</span><span><span class="hljs-string">'user2'</span></span><span> => [</span><span><span class="hljs-string">'age'</span></span><span> => </span><span><span class="hljs-number">22</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> => </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 Reindex,キー価値の不一致を避けるため。
*/</span>
<span class="hljs-comment">/*
要約します:
意思 krsort そして array_multisort 組み合わせて使用します,複雑な多次元配列のソート要件を実装できます。krsort 负责按键的降順排序,array_multisort その後、配列の値に対して複数の条件を実行できます、マルチタイプのソート。この組み合わせ方法は、柔軟性があり効率的です,さまざまな実用的なアプリケーションシナリオに適しています,たとえば、ユーザーデータ管理、ソートなどをレポート。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>