Current Location: Home> Latest Articles> How to Sort a Multidimensional Array Containing Dates Using the usort Function

How to Sort a Multidimensional Array Containing Dates Using the usort Function

gitbox 2025-09-26

<?php
// Main content
echo "

How to Sort a Multidimensional Array Containing Dates Using the usort Function

";

echo "

In PHP development, we often encounter situations where we need to sort a multidimensional array that contains dates.

The usort function offers a flexible way to sort the array using a custom comparison function.

"
;

echo "

1. Example of a Multidimensional Array

";
echo "
"</span></span><span>;<br>
</span><span><span>$data</span></span><span> = [<br>
[</span><span><span>'name'</span></span><span> => </span><span><span>'Alice'</span></span><span>, </span><span><span>'date'</span></span><span> => </span><span><span>'2025-09-20'</span></span><span>],<br>
[</span><span><span>'name'</span></span><span> => </span><span><span>'Bob'</span></span><span>, </span><span><span>'date'</span></span><span> => </span><span><span>'2024-12-15'</span></span><span>],<br>
[</span><span><span>'name'</span></span><span> => </span><span><span>'Charlie'</span></span><span>, </span><span><span>'date'</span></span><span> => </span><span><span>'2025-01-10'</span></span><span>],<br>
];<br>
</span><span><span class="function_ invoke__">print_r</span></span><span>(</span><span><span>$data</span></span><span>);<br>
</span><span><span>echo</span></span><span> </span><span><span>"
"
;

echo "

2. Sorting Using usort

"
;
echo "

We can define a comparison function that converts date strings to timestamps and then compares them:

"
;

echo "

"</span></span><span>;<br>
</span><span><span class="function_ invoke__">usort</span></span><span>(</span><span><span>$data</span></span><span>, function(</span><span><span>$a</span></span><span>, </span><span><span>$b</span></span><span>) {<br>
</span><span><span>return</span></span><span> </span><span><span class="function_ invoke__">strtotime</span></span><span>(</span><span><span>$a</span></span><span>[</span><span><span>'date'</span></span><span>]) - </span><span><span class="function_ invoke__">strtotime</span></span><span>(</span><span><span>$b</span></span><span>[</span><span><span>'date'</span></span><span>]);<br>
});<br>
</span><span><span class="function_ invoke__">print_r</span></span><span>(</span><span><span>$data</span></span><span>);<br>
</span><span><span>echo</span></span><span> </span><span><span>"
"
;

echo "

3. Explanation

"
;
echo "

  • The usort function takes two parameters: the array to be sorted and a custom comparison function.
  • In the comparison function, we convert the date string to a timestamp using strtotime.
  • If the return value is less than 0, $a will be placed before $b; if greater than 0, $a will be placed after $b; if equal to 0, the order remains unchanged.
";

echo "

4. Sorting in Descending Order

"
;
echo "
"</span></span><span>;<br>
</span><span><span class="function_ invoke__">usort</span></span><span>(</span><span><span>$data</span></span><span>, function(</span><span><span>$a</span></span><span>, </span><span><span>$b</span></span><span>) {<br>
</span><span><span>return</span></span><span> </span><span><span class="function_ invoke__">strtotime</span></span><span>(</span><span><span>$b</span></span><span>[</span><span><span>'date'</span></span><span>]) - </span><span><span class="function_ invoke__">strtotime</span></span><span>(</span><span><span>$a</span></span><span>[</span><span><span>'date'</span></span><span>]);<br>
});<br>
</span><span><span class="function_ invoke__">print_r</span></span><span>(</span><span><span>$data</span></span><span>);<br>
</span><span><span>echo</span></span><span> </span><span><span>"
"
;

echo "

With the above method, we can easily sort the date field in a multidimensional array in either ascending or descending order.

"
;
?>


<?php // Footer content (irrelevant to the main content) echo "Thank you for reading this tutorial, hope it helps you!\n"; echo "Don't forget to follow for more PHP tips and tricks.\n"; ?>

This article is well-structured:

  • The introductory and concluding sections are irrelevant, with the main content enclosed in