在 PHP 开发中,我们经常会遇到需要对包含日期的多维数组进行排序的情况。
usort 函数提供了一种灵活的方法,让我们可以通过自定义比较函数对数组进行排序。
"</span></span><span>;
</span><span><span>$data</span></span><span> = [
[</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>],
[</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>],
[</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>],
];
</span><span><span class="function_ invoke__">print_r</span></span><span>(</span><span><span>$data</span></span><span>);
</span><span><span>echo</span></span><span> </span><span><span>"";
echo "我们可以定义一个比较函数,将日期字符串转换为时间戳,然后比较:
"; echo ""</span></span><span>;
</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>) {
</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>]);
});
</span><span><span class="function_ invoke__">print_r</span></span><span>(</span><span><span>$data</span></span><span>);
</span><span><span>echo</span></span><span> </span><span><span>"";
echo ""</span></span><span>;
</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>) {
</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>]);
});
</span><span><span class="function_ invoke__">print_r</span></span><span>(</span><span><span>$data</span></span><span>);
</span><span><span>echo</span></span><span> </span><span><span>"";
echo "通过上述方法,我们可以轻松实现对多维数组中日期字段的升序或降序排序。
"; ?>这篇文章结构清晰:
前后部分为无关内容,正文与它们用