{"id":2985,"date":"2025-03-19T00:06:34","date_gmt":"2025-03-18T16:06:34","guid":{"rendered":"https:\/\/www.laixuexila.com\/?p=2985"},"modified":"2025-03-19T00:06:34","modified_gmt":"2025-03-18T16:06:34","slug":"php-%e6%95%b0%e7%bb%84%e6%8e%92%e5%ba%8f%ef%bc%88%e4%ba%8c%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.laixuexila.com\/index.php\/2025\/03\/19\/php-%e6%95%b0%e7%bb%84%e6%8e%92%e5%ba%8f%ef%bc%88%e4%ba%8c%ef%bc%89\/","title":{"rendered":"PHP \u6570\u7ec4\u6392\u5e8f\uff08\u4e8c\uff09"},"content":{"rendered":"\n<p>\u5728 PHP \u4e2d\uff0c\u9664\u4e86\u5e38\u89c1\u7684\u6392\u5e8f\u65b9\u6cd5\u5916\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528\u4e00\u4e9b\u66f4\u590d\u6742\u7684\u6392\u5e8f\u6280\u5de7\uff0c\u5c24\u5176\u662f\u5f53\u6211\u4eec\u5904\u7406\u591a\u7ef4\u6570\u7ec4\u3001\u5173\u8054\u6570\u7ec4\u6216\u8005\u9700\u8981\u81ea\u5b9a\u4e49\u6392\u5e8f\u89c4\u5219\u65f6\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u66f4\u590d\u6742\u7684\u6392\u5e8f\u65b9\u6cd5\uff0c\u6d89\u53ca\u5230\u81ea\u5b9a\u4e49\u6bd4\u8f83\u51fd\u6570\u3001\u6392\u5e8f\u591a\u7ef4\u6570\u7ec4\u3001\u6309\u591a\u4e2a\u6761\u4ef6\u6392\u5e8f\u7b49\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. <strong>\u6309\u591a\u7ef4\u6570\u7ec4\u7684\u67d0\u4e00\u5217\u6392\u5e8f<\/strong><\/h2>\n\n\n\n<p>\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u6839\u636e\u591a\u7ef4\u6570\u7ec4\u4e2d\u7684\u67d0\u4e2a\u5b57\u6bb5\uff08\u4f8b\u5982\u6570\u7ec4\u4e2d\u7684\u67d0\u4e00\u5217\uff09\u8fdb\u884c\u6392\u5e8f\u3002\u53ef\u4ee5\u4f7f\u7528 <code>usort()<\/code> \u914d\u5408\u81ea\u5b9a\u4e49\u6bd4\u8f83\u51fd\u6570\u6765\u5b9e\u73b0\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b\uff1a<\/h3>\n\n\n\n<p>\u5047\u8bbe\u6211\u4eec\u6709\u4e00\u4e2a\u5b66\u751f\u6570\u7ec4\uff0c\u6bcf\u4e2a\u5b66\u751f\u5305\u542b\u59d3\u540d\u548c\u6210\u7ee9\uff0c\u6309\u6210\u7ee9\u8fdb\u884c\u6392\u5e8f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$students = &#91;\n    &#91;\"name\" =&gt; \"Alice\", \"score\" =&gt; 85],\n    &#91;\"name\" =&gt; \"Bob\", \"score\" =&gt; 92],\n    &#91;\"name\" =&gt; \"Charlie\", \"score\" =&gt; 88],\n    &#91;\"name\" =&gt; \"David\", \"score\" =&gt; 90],\n];\n\nusort($students, function($a, $b) {\n    return $a&#91;'score'] &lt;=&gt; $b&#91;'score'];  \/\/ \u4f7f\u7528 PHP 7 \u7684\u6bd4\u8f83\u8fd0\u7b97\u7b26\n});\n\nprint_r($students);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;0] =&gt; Array ( &#91;name] =&gt; Alice &#91;score] =&gt; 85 )\n    &#91;1] =&gt; Array ( &#91;name] =&gt; Charlie &#91;score] =&gt; 88 )\n    &#91;2] =&gt; Array ( &#91;name] =&gt; David &#91;score] =&gt; 90 )\n    &#91;3] =&gt; Array ( &#91;name] =&gt; Bob &#91;score] =&gt; 92 )\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. <strong>\u6309\u591a\u4e2a\u5b57\u6bb5\u6392\u5e8f<\/strong><\/h2>\n\n\n\n<p>\u6709\u65f6\u5019\u6211\u4eec\u9700\u8981\u6309\u591a\u4e2a\u6761\u4ef6\u8fdb\u884c\u6392\u5e8f\u3002\u4f8b\u5982\uff0c\u9996\u5148\u6309\u6210\u7ee9\u6392\u5e8f\uff0c\u5982\u679c\u6210\u7ee9\u76f8\u540c\uff0c\u5219\u6309\u59d3\u540d\u6392\u5e8f\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 <code>usort()<\/code> \u7ed3\u5408\u591a\u4e2a\u6761\u4ef6\u6765\u5b9e\u73b0\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u793a\u4f8b\uff1a<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>$students = &#91;\n    &#91;\"name\" =&gt; \"Alice\", \"score\" =&gt; 85],\n    &#91;\"name\" =&gt; \"Bob\", \"score\" =&gt; 92],\n    &#91;\"name\" =&gt; \"Charlie\", \"score\" =&gt; 92],\n    &#91;\"name\" =&gt; \"David\", \"score\" =&gt; 90],\n];\n\nusort($students, function($a, $b) {\n    \/\/ \u9996\u5148\u6309\u6210\u7ee9\u6392\u5e8f\n    if ($a&#91;'score'] === $b&#91;'score']) {\n        \/\/ \u5982\u679c\u6210\u7ee9\u76f8\u540c\uff0c\u5219\u6309\u59d3\u540d\u6392\u5e8f\n        return strcmp($a&#91;'name'], $b&#91;'name']);\n    }\n    return $a&#91;'score'] &lt;=&gt; $b&#91;'score'];\n});\n\nprint_r($students);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;0] =&gt; Array ( &#91;name] =&gt; Alice &#91;score] =&gt; 85 )\n    &#91;1] =&gt; Array ( &#91;name] =&gt; David &#91;score] =&gt; 90 )\n    &#91;2] =&gt; Array ( &#91;name] =&gt; Bob &#91;score] =&gt; 92 )\n    &#91;3] =&gt; Array ( &#91;name] =&gt; Charlie &#91;score] =&gt; 92 )\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. <strong>\u81ea\u5b9a\u4e49\u6392\u5e8f\u89c4\u5219\uff08<code>uasort()<\/code> \u548c <code>uksort()<\/code>\uff09<\/strong><\/h2>\n\n\n\n<p>\u5982\u679c\u4f60\u60f3\u6839\u636e\u6570\u7ec4\u7684\u503c\u8fdb\u884c\u6392\u5e8f\uff0c\u5e76\u4e14\u4fdd\u6301\u952e\u7684\u5173\u8054\uff0c\u53ef\u4ee5\u4f7f\u7528 <code>uasort()<\/code>\u3002<code>uksort()<\/code> \u7528\u4e8e\u81ea\u5b9a\u4e49\u952e\u7684\u6392\u5e8f\u89c4\u5219\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b\uff1a\u4f7f\u7528 <code>uasort()<\/code> \u6309\u503c\u6392\u5e8f\u5e76\u4fdd\u6301\u952e\u5173\u8054<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$grades = &#91;\n    \"John\" =&gt; 85,\n    \"Jane\" =&gt; 92,\n    \"David\" =&gt; 88,\n    \"Alice\" =&gt; 90,\n];\n\nuasort($grades, function($a, $b) {\n    return $a &lt;=&gt; $b;  \/\/ \u6309\u503c\u5347\u5e8f\u6392\u5e8f\n});\n\nprint_r($grades);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;John] =&gt; 85\n    &#91;David] =&gt; 88\n    &#91;Alice] =&gt; 90\n    &#91;Jane] =&gt; 92\n)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b\uff1a\u4f7f\u7528 <code>uksort()<\/code> \u6309\u952e\u7684\u81ea\u5b9a\u4e49\u89c4\u5219\u6392\u5e8f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$array = &#91;\n    \"apple\" =&gt; 5,\n    \"banana\" =&gt; 2,\n    \"orange\" =&gt; 4,\n    \"grape\" =&gt; 3,\n];\n\nuksort($array, function($a, $b) {\n    return strlen($a) &lt;=&gt; strlen($b);  \/\/ \u6309\u952e\u7684\u957f\u5ea6\u6392\u5e8f\n});\n\nprint_r($array);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;apple] =&gt; 5\n    &#91;grape] =&gt; 3\n    &#91;orange] =&gt; 4\n    &#91;banana] =&gt; 2\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. <strong>\u81ea\u7136\u987a\u5e8f\u6392\u5e8f\uff08natsort() \u548c natcasesort()\uff09<\/strong><\/h2>\n\n\n\n<p><code>natsort()<\/code> \u548c <code>natcasesort()<\/code> \u7528\u4e8e\u6309\u81ea\u7136\u987a\u5e8f\u5bf9\u6570\u7ec4\u8fdb\u884c\u6392\u5e8f\u3002\u5b83\u4eec\u4e3b\u8981\u7528\u6765\u5bf9\u5e26\u6709\u6570\u5b57\u548c\u5b57\u6bcd\u7684\u6df7\u5408\u6570\u636e\u8fdb\u884c\u6392\u5e8f\uff0c\u9075\u5faa\u6570\u5b57\u7684\u5927\u5c0f\u987a\u5e8f\uff0c\u800c\u4e0d\u4ec5\u4ec5\u662f\u6309\u5b57\u6bcd\u987a\u5e8f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b\uff1a\u4f7f\u7528 <code>natsort()<\/code> \u8fdb\u884c\u81ea\u7136\u987a\u5e8f\u6392\u5e8f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$items = &#91;\"item10\", \"item2\", \"item1\", \"item20\", \"item11\"];\nnatsort($items);\nprint_r($items);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;2] =&gt; item1\n    &#91;1] =&gt; item2\n    &#91;0] =&gt; item10\n    &#91;4] =&gt; item11\n    &#91;3] =&gt; item20\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. <strong>\u9006\u5411\u6392\u5e8f\uff08\u4f7f\u7528 <code>array_multisort()<\/code>\uff09<\/strong><\/h2>\n\n\n\n<p><code>array_multisort()<\/code> \u53ef\u4ee5\u4e00\u6b21\u5bf9\u591a\u4e2a\u6570\u7ec4\u8fdb\u884c\u6392\u5e8f\u3002\u5b83\u7279\u522b\u9002\u7528\u4e8e\u591a\u5217\u6570\u636e\u6392\u5e8f\uff0c\u7c7b\u4f3c\u4e8e\u6570\u636e\u5e93\u4e2d\u7684 ORDER BY \u5b50\u53e5\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b\uff1a\u4f7f\u7528 <code>array_multisort()<\/code> \u5bf9\u591a\u5217\u6392\u5e8f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$names = &#91;\"Alice\", \"Bob\", \"Charlie\"];\n$scores = &#91;85, 92, 88];\n\n\/\/ \u5148\u6309\u5206\u6570\u6392\u5e8f\uff0c\u518d\u6309\u540d\u5b57\u6392\u5e8f\narray_multisort($scores, SORT_DESC, $names, SORT_ASC);\n\nprint_r($names);\nprint_r($scores);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;0] =&gt; Bob\n    &#91;1] =&gt; Charlie\n    &#91;2] =&gt; Alice\n)\nArray\n(\n    &#91;0] =&gt; 92\n    &#91;1] =&gt; 88\n    &#91;2] =&gt; 85\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6. <strong>\u81ea\u5b9a\u4e49\u6392\u5e8f\u51fd\u6570\u7684\u590d\u6742\u4f8b\u5b50<\/strong><\/h2>\n\n\n\n<p>\u5982\u679c\u6392\u5e8f\u9700\u6c42\u66f4\u590d\u6742\uff0c\u4f60\u53ef\u4ee5\u4f20\u9012\u4e00\u4e2a\u66f4\u590d\u6742\u7684\u6bd4\u8f83\u51fd\u6570\uff0c\u6216\u8005\u5904\u7406\u66f4\u590d\u6742\u7684\u6570\u636e\u7ed3\u6784\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u793a\u4f8b\uff1a\u6309\u4e24\u4e2a\u6761\u4ef6\u6392\u5e8f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>$data = &#91;\n    &#91;'name' =&gt; 'John', 'age' =&gt; 30, 'score' =&gt; 85],\n    &#91;'name' =&gt; 'Jane', 'age' =&gt; 25, 'score' =&gt; 92],\n    &#91;'name' =&gt; 'Alice', 'age' =&gt; 30, 'score' =&gt; 88],\n    &#91;'name' =&gt; 'Bob', 'age' =&gt; 25, 'score' =&gt; 90],\n];\n\nusort($data, function($a, $b) {\n    \/\/ \u9996\u5148\u6309\u5e74\u9f84\u6392\u5e8f\n    if ($a&#91;'age'] === $b&#91;'age']) {\n        \/\/ \u5982\u679c\u5e74\u9f84\u76f8\u540c\uff0c\u6309\u6210\u7ee9\u6392\u5e8f\n        return $a&#91;'score'] &lt;=&gt; $b&#91;'score'];\n    }\n    return $a&#91;'age'] &lt;=&gt; $b&#91;'age'];\n});\n\nprint_r($data);<\/code><\/pre>\n\n\n\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Array\n(\n    &#91;0] =&gt; Array ( &#91;name] =&gt; Bob &#91;age] =&gt; 25 &#91;score] =&gt; 90 )\n    &#91;1] =&gt; Array ( &#91;name] =&gt; Jane &#91;age] =&gt; 25 &#91;score] =&gt; 92 )\n    &#91;2] =&gt; Array ( &#91;name] =&gt; Alice &#91;age] =&gt; 30 &#91;score] =&gt; 88 )\n    &#91;3] =&gt; Array ( &#91;name] =&gt; John &#91;age] =&gt; 30 &#91;score] =&gt; 85 )\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u603b\u7ed3<\/h2>\n\n\n\n<p>PHP \u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u6392\u5e8f\u51fd\u6570\uff0c\u53ef\u4ee5\u6ee1\u8db3\u5927\u591a\u6570\u5e38\u89c1\u7684\u6392\u5e8f\u9700\u6c42\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u6570\u636e\u7684\u7ed3\u6784\u548c\u6392\u5e8f\u89c4\u5219\u9009\u62e9\u5408\u9002\u7684\u6392\u5e8f\u51fd\u6570\u3002\u5bf9\u4e8e\u590d\u6742\u7684\u6392\u5e8f\u9700\u6c42\uff0c\u4f7f\u7528 <code>usort()<\/code> \u914d\u5408\u81ea\u5b9a\u4e49\u6bd4\u8f83\u51fd\u6570\u662f\u6700\u5e38\u7528\u7684\u65b9\u6cd5\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/ref.array.php\">PHP \u5b98\u65b9\u6392\u5e8f\u51fd\u6570\u6587\u6863<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/function.usort.php\">PHP usort() \u51fd\u6570<\/a><\/li>\n<\/ul>\n\n\n\n<p>\u66f4\u591a\u8be6\u7ec6\u5185\u5bb9\u8bf7\u5173\u6ce8\u5176\u4ed6\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728 PHP \u4e2d\uff0c\u9664\u4e86\u5e38\u89c1\u7684\u6392\u5e8f\u65b9\u6cd5\u5916\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528\u4e00\u4e9b\u66f4\u590d\u6742\u7684\u6392\u5e8f\u6280\u5de7\uff0c\u5c24\u5176\u662f\u5f53\u6211\u4eec\u5904\u7406\u591a\u7ef4\u6570\u7ec4\u3001\u5173\u8054\u6570\u7ec4\u6216\u8005\u9700 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2986,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80],"tags":[],"class_list":["post-2985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"_links":{"self":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/2985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/comments?post=2985"}],"version-history":[{"count":1,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/2985\/revisions"}],"predecessor-version":[{"id":2987,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/2985\/revisions\/2987"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/media\/2986"}],"wp:attachment":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/media?parent=2985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/categories?post=2985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/tags?post=2985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}