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] => 牧

)

千里莺啼绿映红水村山郭酒旗风南朝四百八十寺多少楼台烟雨中唐杜牧

  

你可能感兴趣的:(PHP)