php递归数据转二维数组

//把递归的数组转二维数组
 function arrDepth($data, $children)
{
    // 获取key列表
    $keyLists = array_keys($data);
    // 获取数组长度
    $count = count($keyLists);
    foreach ($data as $key => $value) {
        if (!is_array($value)) {
            return $data;
        }
        if (key_exists($children, $value)) {
            // 查找当前key在key列表中的key
            $index = array_search($key, $keyLists);
            $index++;
            // 插入子数组
            // 判断插入位置是否存在
            if ($index >= $count) {
                // 如果不存在
                $data = array_merge($data, $value[$children]);
            } else {
                // 如果存在
                $doing = array_splice($data, $keyLists[$index], 0, $value[$children]);
            }
            // 删除之前的子数组
            unset($data[$key][$children]);
            // 重新调用该方法
            $data = arrDepth($data, $children);
            // 返回操作结果
            // 如果不重新循环会出现key值错误的问题
            return $data;
        }
    }
    return $data;
}

已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注