php分享一个n维数组转一维的函数

好玩,所以做了这么一个函数,来输出唐诗

函数如下

function changearr($arr){
	if(count($arr)==count($arr,1)){
		return $arr;
	}
	else{
		foreach ($arr as $key=>$value){
			if(is_array($value)){
				foreach($value as $k=>$v){
					$arr[] = $v;
				}
				unset($arr[$key]);
			}
		}
	}
	$arr = array_values($arr);
	return changearr($arr);
}

  测试数据如下

$a = array(
	0=>'千',
	1=>array(
		0=>'里',
		1=>'莺',
	),
	2=>array(
		0=>array(
			0=>'啼',
			1=>'绿',
		),
		1=>array(
			0=>'映',
			1=>'红',
		),
	),
	3=>array(
		0=>array(
			0=>array(
				0=>'水',
				1=>'村',
			),
			1=>array(
				0=>'山',
				1=>'郭',
			),
		),
		1=>array(
			0=>array(
				0=>'酒',
				1=>'旗',
			),
			1=>array(
				0=>'风',
				1=>'南',
			),
		),
	),
	4=>array(
		0=>array(
			0=>array(
				0=>array('朝','四'),
				1=>array('百','八'),
			),
			1=>array(
				0=>array('十','寺'),
				1=>array('多','少'),
			),
		),
		1=>array(
			0=>array(
				0=>array('楼','台'),
				1=>array('烟','雨'),
			),
			1=>array(
				0=>array('中','唐'),
				1=>array('杜','牧'),
			),
		),
	),
);

  调用如下

$return = changearr($a);
echo '<pre/>';
print_r($return);
$tangshi='';
foreach($return as $k=>$v){
	$tangshi.=$v;
}
echo $tangshi;

  输出如下

Array
(
    [0] => 千
    [1] => 里
    [2] => 莺
    [3] => 啼
    [4] => 绿
    [5] => 映
    [6] => 红
    [7] => 水
    [8] => 村
    [9] => 山
    [10] => 郭
    [11] => 酒
    [12] => 旗
    [13] => 风
    [14] => 南
    [15] => 朝
    [16] => 四
    [17] => 百
    [18] => 八
    [19] => 十
    [20] => 寺
    [21] => 多
    [22] => 少
    [23] => 楼
    [24] => 台
    [25] => 烟
    [26] => 雨
    [27] => 中
    [28] => 唐
    [29] => 杜
    [30] => 牧
)
千里莺啼绿映红水村山郭酒旗风南朝四百八十寺多少楼台烟雨中唐杜牧

  

原文地址:https://www.cnblogs.com/taijun/p/3924798.html