使用嵌套的 foreach 循环从数组中获取值

Fetch values from an array using nested foreach loop

我有一个很长的数组,我希望从中获取所有值并将其存储在一个单独的变量中,然后将每个值存储在数据库中。

我的数组是:

 Array
(
    [success] => 1
    [categories] => Array
        (
            [0] => Array
                (
                    [category_id] => 39
                    [name] => BAGS
                    [categories] => Array
                        (
                            [0] => Array
                                (
                                    [category_id] => 59
                                    [name] => Handcrafted Purses
                                    [categories] => 
                                    [status] => 1
                                )

                            [1] => Array
                                (
                                    [category_id] => 45
                                    [parent_id] => 39
                                    [name] => Laptop Bag
                                    [categories] => 
                                    [status] => 1
                                )
                        )
                    [status] => 1
                )
            [1] => Array
                (
                    [category_id] => 40
                    [name] => BOXERS
                    [categories] => Array
                        (
                            [0] => Array
                                (
                                    [category_id] => 56
                                    [parent_id] => 40
                                    [name] =>  Women Boxers
                                    [status] => 1
                                )
                        )
                    [status] => 1
                )

            [2] => Array
                (
                    [category_id] => 91
                    [parent_id] => 0
                    [name] => Business Corporate
                    [image] => 
                    [categories] => Array
                        (
                            [0] => Array
                                (
                                    [category_id] => 92
                                    [parent_id] => 91
                                    [name] => Bags
                                    [image] => 
                                    [categories] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [category_id] => 93
                                                    [parent_id] => 92
                                                    [name] => Potli Bags
                                                    [image] => 
                                                    [categories] => 
                                                    [status] => 1
                                                )

                                        )

                                    [status] => 1
                                )

                        )

                    [status] => 1
                )

            [3] => Array
                (
                    [category_id] => 60
                    [parent_id] => 0
                    [name] => Business Corporates
                    [image] => 
                    [categories] => Array
                        (
                            [0] => Array
                                (
                                    [category_id] => 90
                                    [parent_id] => 60
                                    [name] => Art Cushions
                                    [image] => 
                                    [categories] => 
                                    [status] => 1
                                )

                            [1] => Array
                                (
                                    [category_id] => 67
                                    [parent_id] => 60
                                    [name] => Bags
                                    [image] => 
                                    [categories] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [category_id] => 77
                                                    [parent_id] => 67
                                                    [name] => Potli Bags
                                                    [image] => 
                                                    [categories] => 
                                                    [status] => 1
                                                )

                                            [1] => Array
                                                (
                                                    [category_id] => 76
                                                    [parent_id] => 67
                                                    [name] => Smart Bags
                                                    [image] => 
                                                    [categories] => 
                                                    [status] => 1
                                                )
                                        )

                                    [status] => 1
                                )

                            [2] => Array
                                (
                                    [category_id] => 86
                                    [parent_id] => 60
                                    [name] => Fashion Jewellery
                                    [image] => 
                                    [categories] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [category_id] => 88
                                                    [parent_id] => 86
                                                    [name] => Coming Soon - Products Uploading
                                                    [image] => 
                                                    [categories] => 
                                                    [status] => 1
                                                )

                                        )

                                    [status] => 1
                                )

                            [3] => Array
                                (
                                    [category_id] => 61
                                    [parent_id] => 60
                                    [name] => Men Footwear
                                    [image] => 
                                    [categories] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [category_id] => 65
                                                    [parent_id] => 61
                                                    [name] => Canvas Loafers
                                                    [image] => 
                                                    [categories] => 
                                                    [status] => 1
                                                )

                                        )

                                    [status] => 1
                                )

                            [4] => Array
                                (
                                    [category_id] => 87
                                    [parent_id] => 60
                                    [name] => Shawls And Stoles
                                    [image] => 
                                    [categories] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [category_id] => 89
                                                    [parent_id] => 87
                                                    [name] => Coming Soon - Products Uploading
                                                    [image] => 
                                                    [categories] => 
                                                    [status] => 1
                                                )

                                        )

                                    [status] => 1
                                )
                        )

                    [status] => 1
                )

            [4] => Array
                (
                    [category_id] => 15
                    [parent_id] => 0
                    [name] => ETHNIC WEAR 
                    [image] => 
                    [categories] => Array
                        (
                            [0] => Array
                                (
                                    [category_id] => 28
                                    [parent_id] => 15
                                    [name] => Designer Lehngas
                                    [image] => 
                                    [categories] => 
                                    [status] => 1
                                )

                            [1] => Array
                                (
                                    [category_id] => 2
                                    [parent_id] => 15
                                    [name] => Suits
                                    [image] => 
                                    [categories] => 
                                    [status] => 1
                                )
                        )

                    [status] => 1
                )
        )
)

我可以使用以下代码获取此数组的外部值:

if (!empty($array)) 
    {
        foreach ($array['categories'] as $category) 
            {
                echo $category['category_id'];
                echo "<br>";
            }
    }

我得到的值为:

39
40
91
60
15
16
38
57

但我也想访问数组最里面的值。谁能告诉我如何创建嵌套循环?

如果您现在知道数组有多深,您只需在主循环中添加其他 foreach 循环即可。

if (!empty($array)) 
{
    foreach ($array['categories'] as $category) 
        {
            echo $category['category_id'];
            echo "<br>";

            if(isset($category['categories'])){
            foreach($category['categories'] as $category2)
                {
                echo $category2['category_id'];
                echo "<br>";

                     if (isset($category2['categories'])){
                     foreach($category2['categories'] as $category3)
                       {
                         echo $category3['category_id'];
                         echo "<br>";

                         ...

                       } }

                }}
        }
}