{"id":2090,"date":"2021-06-30T07:51:00","date_gmt":"2021-06-30T07:51:00","guid":{"rendered":"https:\/\/phptutorial.net\/?page_id=2090"},"modified":"2025-04-06T05:05:14","modified_gmt":"2025-04-06T05:05:14","slug":"php-uasort","status":"publish","type":"page","link":"https:\/\/www.phptutorial.net\/php-tutorial\/php-uasort\/","title":{"rendered":"PHP uasort"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you&#8217;ll learn how to use the PHP <code>uasort()<\/code> function to sort an associative array.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='introduction-to-the-php-uasort-function'>Introduction to the PHP uasort() function <a href=\"#introduction-to-the-php-uasort-function\" class=\"anchor\" id=\"introduction-to-the-php-uasort-function\" title=\"Anchor for Introduction to the PHP uasort() function\">#<\/a><\/h2>\n\n\n\n<p>The <code>uasort()<\/code> function sorts the elements of an <a href=\"https:\/\/phptutorial.net\/php-tutorial\/php-associative-arrays\/\">associative array<\/a> with a user-defined comparison function and maintains the index association.<\/p>\n\n\n\n<p>The following shows the syntax of the <code>uasort()<\/code> function:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">uasort(<span class=\"hljs-keyword\">array<\/span> &amp;$array, callable $callback): bool<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>uasort()<\/code> function has two parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$array<\/code> is the input array.<\/li>\n\n\n\n<li><code>$callback<\/code> is the user-defined comparison function.<\/li>\n<\/ul>\n\n\n\n<p>The <code>uasort()<\/code> function returns <code>true<\/code> on success or <code>false<\/code> on failure.<\/p>\n\n\n\n<p>The <code>$callback<\/code> function accepts two parameters:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">callback(mixed $x, mixed $y): int<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>$callback<\/code> function returns an integer. The returned value can be a negative number, zero, and positive number, indicating that <code>$x<\/code> is less than, equal to, and greater than <code>$y<\/code>, respectively.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='php-uasort-function'>PHP uasort() function <a href=\"#php-uasort-function\" class=\"anchor\" id=\"php-uasort-function\" title=\"Anchor for PHP uasort() function\">#<\/a><\/h2>\n\n\n\n<p>The followning example uses the <code>uasort()<\/code> function to sort an associative array:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n$countries = &#91;\n    <span class=\"hljs-string\">'China'<\/span> =&gt; &#91;<span class=\"hljs-string\">'gdp'<\/span> =&gt; <span class=\"hljs-number\">12.238<\/span> , <span class=\"hljs-string\">'gdp_growth'<\/span> =&gt; <span class=\"hljs-number\">6.9<\/span>],\n    <span class=\"hljs-string\">'Germany'<\/span> =&gt; &#91;<span class=\"hljs-string\">'gdp'<\/span> =&gt; <span class=\"hljs-number\">3.693<\/span> , <span class=\"hljs-string\">'gdp_growth'<\/span> =&gt; <span class=\"hljs-number\">2.22<\/span> ],\n    <span class=\"hljs-string\">'Japan'<\/span> =&gt; &#91;<span class=\"hljs-string\">'gdp'<\/span> =&gt; <span class=\"hljs-number\">4.872<\/span> , <span class=\"hljs-string\">'gdp_growth'<\/span> =&gt; <span class=\"hljs-number\">1.71<\/span> ],\n    <span class=\"hljs-string\">'USA'<\/span> =&gt; &#91;<span class=\"hljs-string\">'gdp'<\/span> =&gt; <span class=\"hljs-number\">19.485<\/span>, <span class=\"hljs-string\">'gdp_growth'<\/span> =&gt; <span class=\"hljs-number\">2.27<\/span> ],\n];\n\n<span class=\"hljs-comment\">\/\/ sort the country by GDP<\/span>\nuasort($countries, <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-params\">($x, $y)<\/span> <\/span>{\n    <span class=\"hljs-keyword\">return<\/span> $x&#91;<span class=\"hljs-string\">'gdp'<\/span>] &lt;=&gt; $y&#91;<span class=\"hljs-string\">'gdp'<\/span>];\n});\n\n<span class=\"hljs-comment\">\/\/ show the array<\/span>\n<span class=\"hljs-keyword\">foreach<\/span> ($countries <span class=\"hljs-keyword\">as<\/span> $name =&gt; $stat) {\n    <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"$name has a GDP of {$stat&#91;'gdp']} trillion USD with a GDP growth rate of {$stat&#91;'gdp_growth']}%\"<\/span> . <span class=\"hljs-string\">'&lt;br&gt;'<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><a href=\"https:\/\/phptutorial.net\/playground\/?q=PD9waHAKCiRjb3VudHJpZXMgPSBbCiAgICAnQ2hpbmEnID0-IFsnZ2RwJyA9PiAxMi4yMzggLCAnZ2RwX2dyb3d0aCcgPT4gNi45XSwKICAgICdHZXJtYW55JyA9PiBbJ2dkcCcgPT4gMy42OTMgLCAnZ2RwX2dyb3d0aCcgPT4gMi4yMiBdLAogICAgJ0phcGFuJyA9PiBbJ2dkcCcgPT4gNC44NzIgLCAnZ2RwX2dyb3d0aCcgPT4gMS43MSBdLAogICAgJ1VTQScgPT4gWydnZHAnID0-IDE5LjQ4NSwgJ2dkcF9ncm93dGgnID0-IDIuMjcgXSwKXTsKCi8vIHNvcnQgdGhlIGNvdW50cnkgYnkgR0RQCnVhc29ydCgkY291bnRyaWVzLCBmdW5jdGlvbiAoJHgsICR5KSB7CiAgICByZXR1cm4gJHhbJ2dkcCddIDw9PiAkeVsnZ2RwJ107Cn0pOwoKLy8gc2hvdyB0aGUgYXJyYXkKZm9yZWFjaCAoJGNvdW50cmllcyBhcyAkbmFtZSA9PiAkc3RhdCkgewogICAgZWNobyAiJG5hbWUgaGFzIGEgR0RQIG9mIHskc3RhdFsnZ2RwJ119IHRyaWxsaW9uIFVTRCB3aXRoIGEgR0RQIGdyb3d0aCByYXRlIG9mIHskc3RhdFsnZ2RwX2dyb3d0aCddfSUiIC4gJzxicj4nOwp9\" target=\"_blank\" rel=\"noreferrer noopener\">Try it<\/a><\/p>\n\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Germany has a GDP of 3.693 trillion USD with a GDP growth rate of 2.22%\nJapan has a GDP of 4.872 trillion USD with a GDP growth rate of 1.71%  \nChina has a GDP of 12.238 trillion USD with a GDP growth rate of 6.9%  \nUSA has a GDP of 19.485 trillion USD with a GDP growth rate of 2.27%   <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First, define an array of countries with GDP information. The key of each element is the country name. The value of each element is an array that contains the GDP and GDP growth.<\/li>\n\n\n\n<li>Second, sort the <code>$countries<\/code> array by GDP in ascending order.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id='summary'>Summary <a href=\"#summary\" class=\"anchor\" id=\"summary\" title=\"Anchor for Summary\">#<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the <code>uasort()<\/code> function to sort an associative array with a user-defined comparison function and maintain the index association.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Did you find this tutorial useful?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"2090\"\n\t\t\t\tdata-post-url=\"https:\/\/www.phptutorial.net\/php-tutorial\/php-uasort\/\"\n\t\t\t\tdata-post-title=\"PHP uasort\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"2090\"\n\t\t\t\tdata-post-url=\"https:\/\/www.phptutorial.net\/php-tutorial\/php-uasort\/\"\n\t\t\t\tdata-post-title=\"PHP uasort\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summary: in this tutorial, you&#8217;ll learn how to use the PHP uasort() function to sort an associative array. Introduction to the PHP uasort() function # The uasort() function sorts the elements of an associative array with a user-defined comparison function and maintains the index association. The following shows the syntax of the uasort() function: The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":15,"menu_order":61,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2090","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/2090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/comments?post=2090"}],"version-history":[{"count":4,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/2090\/revisions"}],"predecessor-version":[{"id":3100,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/2090\/revisions\/3100"}],"up":[{"embeddable":true,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/15"}],"wp:attachment":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/media?parent=2090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}