php中遍历多维数组的方法

booleanyong 发布于 2012/06/28 19:01
阅读 11K+
收藏 2
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 输出,我想使用返回值把我想要的值取到,如何解决??

这是我的数组,高手试试,帮我解决一下!

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


以下是问题补充:

@booleanyong:我的本意,是想把多维数组变成一维数组而已! (2012/06/29 09:50)
加载中
0
酒逍遥
酒逍遥

楼主要想什么值撒

干脆整成 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维数组了  想要什么值就取什么值

 

booleanyong
booleanyong
好了! ,哈哈,谢谢你! 你这个方法很棒咯~
booleanyong
booleanyong
我的本意就是想把多维数组变成一维的! 不行,我用数组试过的,结果成了这样! Array ( [0] => ,sdsdf [1] => ,3332fsdf ) 不过,还是谢谢你哦!^_^
0
leo108
leo108
你想怎么取值
0
飞晏
飞晏

我想使用返回值把我想要的值取到? 求解释?

0
leo108
leo108

引用来自“飞晏”的答案

我想使用返回值把我想要的值取到? 求解释?

你想要什么值?数组里面那么多值你要哪个?
0
飞晏
飞晏

引用来自“leo108”的答案

引用来自“飞晏”的答案

我想使用返回值把我想要的值取到? 求解释?

你想要什么值?数组里面那么多值你要哪个?
我也没看懂LZ说什么呢..
0
龙上
龙上
function test(&$arr){}
booleanyong
booleanyong
这种方法,不行呀!
0
Jason阿坚
Jason阿坚
echo 改成 return
booleanyong
booleanyong
return 不行!,return的值只能遍历一维数组,剩余的值都出不来!
0
宏哥
宏哥
array_walk_recursive
0
booleanyong
booleanyong

谢谢大家哈哈…… ,我的问题以解决,感谢大家的积极帮忙 

function arr_foreach ($arr) {
	static $str;
	if (!is_array ($arr)) {
	return false;
	}
	foreach ($arr as $key => $val ) {

		if (is_array ($val)) {

				arr_foreach ($val);
		} else {

			$str[] = $val;
		}
	}
  return $str;
}

以上是我的方法,大家可以使用的哦!,可以把多维数组变成一维数组,不过好还是有很多问题没有考虑到,比如key  ,或这value  相同的时候呀 ! 哈哈…… 仅供参考!

返回顶部
顶部