PHP如何将数组中的子数组按创建顺序倒序排列
实现方案
方案1:直接反转数组(适配你当前场景,效率最高)
你当前拿到的$datacomments已经是按子数组创建时间正序排列的,直接调用PHP内置的array_reverse()函数即可完成倒序:
$datacomments = get_post_meta($product_id, 'propina5', false); // 第二个参数传true可保留原数组的数字键名,无需求可省略 $reversed_comments = array_reverse($datacomments); // 打印验证结果 print_r($reversed_comments);
处理后输出的数组首位就是原数组下标为3的最新创建的子数组,完全符合最新内容优先展示的需求。
方案2:按子数组日期字段排序(通用场景,适配性更强)
如果后续你拿到的数组默认顺序不是严格按创建时间排列,可以基于子数组内的date字段自定义排序规则,不受原数组顺序影响:
$datacomments = get_post_meta($product_id, 'propina5', false); usort($datacomments, function($prev, $next) { // 把日期字符串转为时间戳进行比较,倒序用后创建的时间减先创建的时间 $prev_time = DateTime::createFromFormat('d-m-Y H:i', $prev['date'])->getTimestamp(); $next_time = DateTime::createFromFormat('d-m-Y H:i', $next['date'])->getTimestamp(); return $next_time - $prev_time; }); // 打印验证结果 print_r($datacomments);
内容的提问来源于stack exchange,提问作者mario
相关产品推荐
相关产品推荐

