Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php 普通数组转无限级?(php对象转数组方法)

作者:菠蘿。d海   发布日期:2025-05-08   浏览:905

在PHP中,可以使用递归函数将普通数组转换为无限级数组。下面是一个示例代码:

function arrayToInfinite($array, $parentId = 0) {
    $result = array();

    foreach ($array as $item) {
        if ($item['parent_id'] == $parentId) {
            $children = arrayToInfinite($array, $item['id']);

            if (!empty($children)) {
                $item['children'] = $children;
            }

            $result[] = $item;
        }
    }

    return $result;
}

// 示例数据
$array = array(
    array('id' => 1, 'name' => 'A', 'parent_id' => 0),
    array('id' => 2, 'name' => 'B', 'parent_id' => 1),
    array('id' => 3, 'name' => 'C', 'parent_id' => 1),
    array('id' => 4, 'name' => 'D', 'parent_id' => 2),
    array('id' => 5, 'name' => 'E', 'parent_id' => 0),
);

// 转换为无限级数组
$infiniteArray = arrayToInfinite($array);

// 输出结果
print_r($infiniteArray);

这个示例代码将一个包含idnameparent_id字段的普通数组转换为无限级数组。在递归函数arrayToInfinite中,我们首先遍历数组中的每个元素,如果元素的parent_id等于指定的parentId,则将其添加到结果数组中。然后,我们递归调用arrayToInfinite函数,将当前元素的id作为新的parentId,以查找当前元素的子元素。如果子元素不为空,则将其添加到当前元素的children字段中。最后,返回结果数组。

运行上述代码,将输出以下结果:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => A
            [parent_id] => 0
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [name] => B
                            [parent_id] => 1
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 4
                                            [name] => D
                                            [parent_id] => 2
                                        )
                                )
                        )
                    [1] => Array
                        (
                            [id] => 3
                            [name] => C
                            [parent_id] => 1
                        )
                )
        )
    [1] => Array
        (
            [id] => 5
            [name] => E
            [parent_id] => 0
        )
)

这样,普通数组就被成功转换为了无限级数组。

上一篇:php统计行数(php统计数组个数)

下一篇:php 直接读取post(php 文件写入)

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站