【问题标题】:Loop through a multidimensional array and get parent ID using PHP循环遍历多维数组并使用 PHP 获取父 ID
【发布时间】:2016-12-08 16:14:21
【问题描述】:

我有一个多维数组,我想运行一个循环,这样我就可以单独插入到我的数据库中。多维数组可以有无限个深度。这是它的样子:

Array
(
    [0] => Array
        (
            [slug] => item-slug-1
            [name] => Item 1
            [id] => 1
            [children] => Array
                (
                    [0] => Array
                        (
                            [slug] => item-slug-2
                            [name] => Item 2
                            [id] => 2
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [slug] => item-slug-3
                                            [name] => Item 3
                                            [id] => 3
                                            [children] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [slug] => item-slug-4
                                                            [name] => Item 4
                                                            [id] => 4
                                                        )

                                                    [1] => Array
                                                        (
                                                            [slug] => item-slug-5
                                                            [name] => Item 5
                                                            [id] => 5
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

) 

我想将上面的代码格式化成一个数组,这样我可以轻松地循环遍历:

foreach($categories as $category){
    $data = array(
        'name'      =>  $category['name'],
        'slug'      =>  $category['slug'],
        'parent'    =>  $category['parent'],
    );
    update_category( $category['id'], $data );
}

任何帮助将不胜感激。

【问题讨论】:

    标签: php multidimensional-array


    【解决方案1】:
    function walk_and_update($data) {
        if( is_array($data) ) {
            foreach( $data as $key => $row ) {
                update_category( $row['id'], array(
                    'name'      =>  $row['name'],
                    'slug'      =>  $row['slug'],
                    'parent'    =>  $row['parent'],
                ) );
    
                if( isset($row['children']) ) {
                    walk_and_update($row['children']);
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2012-04-21
      • 2011-01-02
      • 2016-02-16
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多