php中三维数组怎么遍历
时间 : 2023-02-22 15:14:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

php中三维数组是指数组的每个子元素本身又是一个数组,每个子数组中又包含多个元素,而且元素可能还有自己的元素,这就是php中的三维数组。php中遍历三维数组一般有三种方法:

一、使用for循环遍历三维数组

最简单的方法是用for循环,先遍历二维数组,然后再遍历每一个子数组。代码实现如下:

<?php

$arr = array(

array('name'=>'超人','age'=>20,'sex'=>'male'),

array('name'=>'蜘蛛侠','age'=>22,'sex'=>'male'),

array('name'=>'神奇女侠','age'=>17,'sex'=>'female')

);

foreach ($arr as $key => $value) {

foreach ($value as $k => $v){

echo "arr[$key][$k] = $v <br/>";

}

}

?>

输出:

arr[0][name] = 超人

arr[0][age] = 20

arr[0][sex] = male

arr[1][name] = 蜘蛛侠

arr[1][age] = 22

arr[1][sex] = male

arr[2][name] = 神奇女侠

arr[2][age] = 17

arr[2][sex] = female

二、使用array_walk_recursive函数遍历三维数组

array_walk_recursive函数是可以遍历任何维的数组的,它能深度遍历三维数组。

<?php

$arr = array(

array('name'=>'超人','age'=>20,'sex'=>'male'),

array('name'=>'蜘蛛侠','age'=>22,'sex'=>'male'),

array('name'=>'神奇女侠','age'=>17,'sex'=>'female')

);

array_walk_recursive($arr,function ($v,$k){

echo "$k => $v <br/>";

});

?>

输出:

name => 超人

age => 20

sex => male

name => 蜘蛛侠

age => 22

sex => male

name => 神奇女侠

age => 17

sex => female

三、使用递归函数遍历三维数组

递归函数也可以实现三维数组的遍历,代码如下:

<?php

$arr = array(

array('name'=>'超人','age'=>20,'sex'=>'male'),

array('name'=>'蜘蛛侠','age'=>22,'sex'=>'male'),

array('name'=>'神奇女侠','age'=>17,'sex'=>'female')

);

function

php的三维数组是指由三个主要元素组成的多维数组,其结构是一个数组的数组,有三个深度层级,通常情况下,数组元素可以是数字或字符串,这样其它数组便成为第三个层级。如果我们想要遍历php中的三维数组,最常用的方式是使用嵌套循环。

嵌套循环是指循环嵌套循环,我们可以使3个或者两个for循环来实现。在php三维数组的遍历中,可以使用三个for循环。第一个for循环用于遍历数组的一维元素,第二个for循环用于遍历二维元素,第三个for循环用于遍历三维元素。下面是一个简单实例:

<?php

// 三维数组

$products = array(

'fruits' => array(

'apple' => array('price' => 13, 'count' => 10),

'banana' => array('price' => 10, 'count' => 5 ),

'vegetables' => array(

'potato' => array('price' => 8, 'count' => 20),

'onion' => array('price' => 5, 'count' => 12)

)

);

// 使用3个for循环输出数组

foreach($products as $type => $sub_products){

echo 'type='.$type.'<br>';

foreach($sub_products as $name => $details){

echo 'name='.$name.'<br>';

foreach($details as $key => $value){

echo $key.'='.$value.'<br>';

}

}

}

?>

该实例的输出结果如下:

type=fruits

name=apple

prices=13

count=10

name=banana

prices=10

count=5

type=vegetables

name=potato

prices=8

count=20

name=onion

prices=5

count=12

从上面的实例中可以看出,使用三个for循环遍历php中的三维数组是非常有效的,而且易于理解。

除了使用for循环以外,在遍历三维数组时,我们也可以使用array_walk_recursive()函数,该函数可以为每个元素执行一段算法。它不会修改本身数组,