{"id":329,"date":"2016-10-20T11:16:11","date_gmt":"2016-10-20T11:16:11","guid":{"rendered":"https:\/\/www.vibidsoft.com\/blog\/?p=329"},"modified":"2025-05-23T09:44:27","modified_gmt":"2025-05-23T09:44:27","slug":"sort-multidimensional-array-by-multiple-keys-php","status":"publish","type":"post","link":"https:\/\/www.vibidsoft.com\/blog\/sort-multidimensional-array-by-multiple-keys-php\/","title":{"rendered":"Sort multidimensional arrays by multiple keys &#8211; PHP"},"content":{"rendered":"<p>We would like to share PHP Solution for sorting of multidimensional array with Multiple Keys. As developers, it&#8217;s likely that you encountered this situation where you have a list of items in the database that are fetched in a specific order but you want to display them in the front-end sorted by a value of that item.<\/p>\n<p><strong>Input Array :<\/strong><\/p>\n<pre class=\"lang-php prettyprint prettyprinted\"><code><span class=\"pln\">$mylist <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> array<\/span><span class=\"pun\">(<\/span><span class=\"pln\">\narray<\/span><span class=\"pun\">(<\/span><span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">1<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Boring Meeting'<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'meeting'<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\narray<\/span><span class=\"pun\">(<\/span><span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">2<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Find My Stapler'<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'meeting'<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\narray<\/span><span class=\"pun\">(<\/span><span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">3<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Mario Party'<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'party'<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\narray<\/span><span class=\"pun\">(<\/span><span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">4<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Duct Tape Party'<\/span><span class=\"pun\">,<\/span> <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'party'<\/span><span class=\"pun\">)<\/span>\n<span class=\"pun\">);<\/span><\/code><\/pre>\n<p><strong>Sorting Logic using array_mulitsort :<\/strong><\/p>\n<pre class=\"lang-php prettyprint prettyprinted\"><code><span class=\"com\"># get a list of sort columns and their data to pass to array_multisort<\/span><span class=\"pln\">\n$sort <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> array<\/span><span class=\"pun\">();<\/span>\n<span class=\"kwd\">foreach<\/span><span class=\"pun\">(<\/span><span class=\"pln\">$mylist <\/span><span class=\"kwd\">as<\/span><span class=\"pln\"> $k<\/span><span class=\"pun\">=&gt;<\/span><span class=\"pln\">$v<\/span><span class=\"pun\">)<\/span> <span class=\"pun\">{<\/span><span class=\"pln\">\n$sort<\/span><span class=\"pun\">[<\/span><span class=\"str\">'title'<\/span><span class=\"pun\">][<\/span><span class=\"pln\">$k<\/span><span class=\"pun\">]<\/span> <span class=\"pun\">=<\/span><span class=\"pln\"> $v<\/span><span class=\"pun\">[<\/span><span class=\"str\">'title'<\/span><span class=\"pun\">];<\/span><span class=\"pln\">\n$sort<\/span><span class=\"pun\">[<\/span><span class=\"str\">'event_type'<\/span><span class=\"pun\">][<\/span><span class=\"pln\">$k<\/span><span class=\"pun\">]<\/span> <span class=\"pun\">=<\/span><span class=\"pln\"> $v<\/span><span class=\"pun\">[<\/span><span class=\"str\">'event_type'<\/span><span class=\"pun\">];<\/span>\n<span class=\"pun\">}<\/span>\n<span class=\"com\"># sort by event_type desc and then title asc<\/span><span class=\"pln\">\narray_multisort<\/span><span class=\"pun\">(<\/span><span class=\"pln\">$sort<\/span><span class=\"pun\">[<\/span><span class=\"str\">'event_type'<\/span><span class=\"pun\">],<\/span><span class=\"pln\"> SORT_DESC<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> $sort<\/span><span class=\"pun\">[<\/span><span class=\"str\">'title'<\/span><span class=\"pun\">],<\/span><span class=\"pln\"> SORT_ASC<\/span><span class=\"pun\">,<\/span><span class=\"pln\">$mylist<\/span><span class=\"pun\">);<\/span><\/code><\/pre>\n<p><strong>Final Output of $mylist:<\/strong><\/p>\n<pre class=\"lang-php prettyprint prettyprinted\"><code><span class=\"pln\">array <\/span><span class=\"pun\">(<\/span>\n  <span class=\"lit\">0<\/span> <span class=\"pun\">=&gt;<\/span><span class=\"pln\"> \n  array <\/span><span class=\"pun\">(<\/span>\n    <span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">4<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Duct Tape Party'<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'party'<\/span><span class=\"pun\">,<\/span>\n  <span class=\"pun\">),<\/span>\n  <span class=\"lit\">1<\/span> <span class=\"pun\">=&gt;<\/span><span class=\"pln\"> \n  array <\/span><span class=\"pun\">(<\/span>\n    <span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">3<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Mario Party'<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'party'<\/span><span class=\"pun\">,<\/span>\n  <span class=\"pun\">),<\/span>\n  <span class=\"lit\">2<\/span> <span class=\"pun\">=&gt;<\/span><span class=\"pln\"> \n  array <\/span><span class=\"pun\">(<\/span>\n    <span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">1<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Boring Meeting'<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'meeting'<\/span><span class=\"pun\">,<\/span>\n  <span class=\"pun\">),<\/span>\n  <span class=\"lit\">3<\/span> <span class=\"pun\">=&gt;<\/span><span class=\"pln\"> \n  array <\/span><span class=\"pun\">(<\/span>\n    <span class=\"str\">'ID'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"lit\">2<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'title'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'Find My Stapler'<\/span><span class=\"pun\">,<\/span>\n    <span class=\"str\">'event_type'<\/span> <span class=\"pun\">=&gt;<\/span> <span class=\"str\">'meeting'<\/span><span class=\"pun\">,<\/span>\n  <span class=\"pun\">),<\/span>\n<span class=\"pun\">)<\/span><\/code><\/pre>\n<p>Vibidsoft has expertise to solve this kind of Custom Programming problems and expert in custom application development.For more information mail us on <a href=\"mailto:inquiry@vibidsoft.com\">inquiry@vibidsoft.com<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We would like to share PHP Solution for sorting of multidimensional array with Multiple Keys. As developers, it&#8217;s likely that you encountered this situation where you have a list of items in the database that are fetched in a specific&#8230; <a class=\"more-link\" href=\"https:\/\/www.vibidsoft.com\/blog\/sort-multidimensional-array-by-multiple-keys-php\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":335,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[103,110],"tags":[111,113,105,112,20],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/posts\/329"}],"collection":[{"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=329"}],"version-history":[{"count":4,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/posts\/329\/revisions"}],"predecessor-version":[{"id":2387,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/posts\/329\/revisions\/2387"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/media\/335"}],"wp:attachment":[{"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/categories?post=329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vibidsoft.com\/blog\/wp-json\/wp\/v2\/tags?post=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}