php多维数组遍历方法大全_php递归遍历数组实例代码

发布时间:2019-11-23编辑:脚本学堂
php多维数组遍历的几种方法,在php编程中多维数组的遍历并不复杂,这里通过几个例子介绍了php递归遍历多维数组的方法,帮助大家掌握php数组遍历的技巧。

php递归遍历多维数组

一、php递归遍历多维数组

例子:
 

复制代码 代码示例:
<?php
function get_array_elems($arrResult, $where="array"){
  while(list($key,$value)=each($arrResult)){
  if (is_array($value)){
 get_array_elems($value, $where."[$key]");
}
else {
  for ($i=0; $i<count($value);$i++){
  echo $where."[$key]=".$value."<BR>n";
  }
}
 }
}
 get_array_elems($arrResult);
?>

二、php遍历多维数组的方法

代码:
 

复制代码 代码示例:
function arr_foreach ($arr) {
 if (!is_array ($arr)) {
 return false;
 }
 foreach ($arr as $key => $val ) {
 if (is_array ($val)) {
 arr_foreach ($val);
 } else {
 $str .= ','.$val;
 }
 }
  echo $str;
}

此方法支持多维数组递归遍历,方法很好。
不过只能echo 输出,想使用返回值把我想要的值取到,如何解决??

php数组
 

复制代码 代码示例:
$firstarr = array('sdsdf','3332fsdf',
  array(
 'a','b','c',array(
  array(33,3,4,5),'e','f',array(1,23,45)
)
 )
 );
//echo "<pre>";
arr_foreach($firstarr);

解决方法:
干脆整成 1维数组得了..
 

复制代码 代码示例:
function arr_foreach ($arr) {
 static $data;
 if (!is_array ($arr)) {
  return $data;
 }
 foreach ($arr as $key => $val ) {
  if (is_array ($val)) {
arr_foreach ($val);
  } else {
$data[]=$val;
  }
 }
 return $data;
}
$data=arr_foreach($arr);
 

多维数组整合成1维数组了,想要什么值就取什么值。

三、php多维数组的递归遍历

php一维数组的遍历使用foreach或for循环就可以了,那么php多维数组如何遍历呢?

这里分享一个php多维数组递归遍历的例子。

代码:
 

复制代码 代码示例:

<?php
/*
php多维数组递归遍历
*
*/
function arr_foreach ($arr)
{
if (!is_array ($arr))
{
return false;
}

foreach ($arr as $key => $val )
{
if (is_array ($val))
{
arr_foreach ($val);
}
else
{
echo $val.'<br/>';
}
}
}

$arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5);

echo '<pre>';
print_r($arr1);
echo '<pre>';

arr_foreach ($arr1);
?>

运行结果:
Array
(
 [1] => Array
  (
[0] => 11
[1] => 12
[2] => 13
[14] => Array
 (
  [0] => 141
  [1] => 142
 )

  )

 [2] => 2
 [3] => 3
 [4] => 4
 [5] => 5
)
11
12
13
141
142
2
3
4
5