recorrer multidimensional index for crear con asociativo array php arrays for-loop multidimensional-array foreach

php - multidimensional - Obtener valores de una matriz utilizando el bucle Foreach anidado



recorrer array asociativo php (1)

Tengo una larga lista desde la cual deseo buscar todos los valores y almacenarlos en una variable separada, y almacenar cada valor en la base de datos.

La matriz que tengo es:

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 ) ) )

Puedo obtener los valores externos de esta matriz usando este código:

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

Obtuve valores como:

39 40 91 60 15 16 38 57

Pero también deseo acceder a los valores más internos de la matriz. ¿Alguien puede decir cómo puedo crear un bucle anidado?


Si ahora cuán profunda es su matriz, simplemente puede agregar otros foreach-loops dentro de su ciclo principal.

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>"; ... } } }} } }