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

函数如下

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分享一个n维数组转一维的函数的更多相关文章

  1. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...

  2. [CareerCup] 13.10 Allocate a 2D Array 分配一个二维数组

    13.10 Write a function in C called my2DAlloc which allocates a two-dimensional array. Minimize the n ...

  3. MVC5中使用jQuery Post 二维数组和一维数组到Action

    很久没有写了,最近在做一个MVC项目,这是我做的第一个MVC项目.之前可以说多MVC一点都不了解,今天把昨天遇到的一个问题记录下来.MVC大神就请飘过吧,跟我遇到同样问题的可以进来看看.遇到的第一个问 ...

  4. ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)

    1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 112[ ...

  5. new一个二维数组

    .定义一个二维数组 char **array1 array1 = new char *[x]; for(i=0;i<x;++i) array1[i] = new char[y]; ...用的时候 ...

  6. php多维数组化一维数组

    一.使用foreach <?php function arr_foreach ($arr) { static $tmp=array(); if (!is_array ($arr)) { retu ...

  7. implode 多维数组转一维数组并字符串输出

    //多维数组返回一维数组,拼接字符串输出 public function r_implode( $glue, $pieces ) { foreach( $pieces as $r_pieces ) { ...

  8. c语言题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点

    //题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点. // #include "stdio.h" #include <stdli ...

  9. php中向前台js中传送一个二维数组

    在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...

随机推荐

  1. session中用户信息改变问题

    问题描述: 在web项目中,我们经常将用户登录信息放在session中用来做后续的权限判断等操作,但最近在项目中发现一个奇怪的现象,session中的用户信息和登录时的信息有了差异. 原因: 在后台代 ...

  2. ASP.NET Url 重写

    protected void Application_BeginRequest(object sender, EventArgs e) { string url = Request.AppRelati ...

  3. org.springframework.web.context.ContextLoaderListener 解决办法

    最近部署ssm项目在tomcat,tomcat启动的时候发出org.springframework.web.context.ContextLoaderListener 错误 严重: Error con ...

  4. CentOS6.8启动Tomcat无法访问

    今天笔者在CentOS6.8的生产环境上配置Java环境,安装JDK,部署Tomcat,这本来是很简单的一件事,可是最后发现通过IP一直访问不了Tomcat的默认页面. 图1. 无法访问Tomcat默 ...

  5. [android] 手机卫士自定义吐司

    继续在之前监听来电的服务AddressService里,添加成员方法MyToast() 获取TextView对象,new出来,构造参数:上下文对象 调用TextView对象的setText()方法,设 ...

  6. __block和__weak修饰符的区别

    block下循环引用的问题 __block本身并不能避免循环引用,避免循环引用需要在block内部把__block修饰的obj置为nil __weak可以避免循环引用,但是其会导致外部对象释放了之后, ...

  7. 基于win32的windows画板程序

    功能设计如下: 1.Graphics菜单中可选择图形,支持Rectangle, Circle, Line,选择对应图形,则相应菜单项前面加上选中标志: 2.Options菜单中包含以下选项 a.Col ...

  8. Java程序中的死锁

    什么是死锁? 死锁是一种特定的程序状态,主要是由于循环依赖导致彼此一直处于等待中,而使得程序陷入僵局,相当尴尬.死锁不仅仅发生在线程之间,而对于资源独占的进程之间同样可能出现死锁.通常来说,我们所说的 ...

  9. 关于android R.layout 中找不到已存在的布局文件问题的解决

    今天遇到一个很奇怪的问题,打R.layout.,居然不会提示已经写好的布局文件,自己把xml文件名打下去后,居然提示错误. 开始以为是R文件中没有自动生成关于布局文件对应的整型,看了R文件,其实是有生 ...

  10. 网络I/O模型--01阻塞模式(普通)

    很长一段时间内,大多数网络通信方式都是阻塞模式,即: · 客户端 向服务器端发出请求后,客户端会一直处于等待状态(不会再做其他事情),直到服务器端返回结果或者网络出现问题 . · 服务器端同样如此,当 ...