You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel8中如何将未知深度多维数组转为带关联行的索引二维数组

如何在Laravel 8中将深度不确定的多维数组扁平化为排序后的二维数组

针对你需要将嵌套层级不确定的多维数组转换为二维数组,并按id排序的需求,这里提供两种实用实现方案:

方案一:纯PHP递归实现

通过递归遍历数组,收集所有包含id、level、email键的目标元素,最后完成排序:

function flattenNestedArray($array) {
    $result = [];
    foreach ($array as $item) {
        // 判断当前元素是否为目标数据项
        if (isset($item['id'], $item['level'], $item['email'])) {
            $result[] = $item;
        } else {
            // 递归处理子数组并合并结果
            $result = array_merge($result, flattenNestedArray($item));
        }
    }
    // 按id升序排序
    usort($result, fn($a, $b) => $a['id'] - $b['id']);
    return $result;
}

// 使用示例
$originalArray = [/* 你的输入数组内容 */];
$flattenedArray = flattenNestedArray($originalArray);

方案二:Laravel集合优雅实现

利用Laravel集合的递归与链式方法,更简洁地完成需求:

use Illuminate\Support\Collection;

$originalArray = [/* 你的输入数组内容 */];

$flattenedArray = Collection::make($originalArray)
    ->recursive() // 递归展开所有嵌套层级
    ->filter(function($item) {
        // 筛选出符合结构的目标元素
        return is_array($item) && isset($item['id'], $item['level'], $item['email']);
    })
    ->sortBy('id') // 按id升序排序
    ->values() // 重置数组索引为连续数字
    ->toArray(); // 转换为普通数组

两种方案最终都会输出你期望的二维数组结构,且所有元素按id排序。

内容的提问来源于stack exchange,提问作者Sherlock Holmes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:00:18