1. 使用foreach

function array_foreach($arr) {static $tmp = array();if (!is_array ($arr)) {return false;}foreach ($arr as $val ) {if (is_array ($val)) {array_foreach($val);}else {$tmp[]=$val;}}return $tmp;
}// 调用例子
$arr = array(1,2=>array(3,4=>array(5,6)),7);
print_r(array_foreach($arr)); // Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 6 [4] => 7 )

2. 使用for循环,只能遍历数字下标的数组

function array_for($arr) {static $tmp = array();for($i=0; $i<count($arr); $i++) {if(is_array($arr[$i])) {array_for($arr[$i]);} else {$tmp[]=$arr[$i];}}return $tmp;
}
// 调用例子
$arr = array(1,array(3,array(5,6)),7);
print_r(array_for($arr)); // Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 6 [4] => 7 )

3. 使用while

function array_while($arr) {// 将数值第一元素作为容器,作地址赋值。$ar_room = &$arr[key($arr)];// 第一容器不是数组进去转呀if (!is_array($ar_room)) {// 转为成数组$ar_room = array($ar_room);}// 指针下移next($arr);// 遍历while (list($k, $v) = each($arr)) {// 是数组就递归深挖,不是就转成数组$v = is_array($v) ? call_user_func(__FUNCTION__, $v) : array($v);// 递归合并$ar_room = array_merge_recursive($ar_room, $v);// 释放当前下标的数组元素unset($arr[$k]);}return $ar_room;
}$arr = array(1, 2, 3 => array(1, 2, 'ar' => array(1, 2 => array('a', 'b'))), array('ar' => array(3, 4)));
print_r(array_while($arr)); // Array ( [0] => 1 [1] => 2 [2] => 1 [3] => 2 [4] => 1 [5] => a [6] => b [7] => 3 [8] => 4 )

转载于:https://www.cnblogs.com/chenjiacheng/p/6522616.html

PHP多维数组转为一维数组的方法实例相关推荐

  1. vba二维数组初始化_将二维数组转为一维数组的2种方法

    如何将下面的二维数组转为一维数组. $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'na ...

  2. 关于图的二维矩阵转为一维数组的理解。

    一开始看二维矩阵转为一维数组的时候还是有点懵的,为啥是N(N+1)/2呢,为啥不是N*N/2呢,这个矩阵明明是N*N的一个正方形啊,我要省一半空间直接除2不就行了,带着这个问题我观察了一下这个PPT里 ...

  3. 数组--二维数组转为一维数组

    a.二维数组转为一维数组: i.reduce() 方法 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值.对空数组是不会执行回调函数的 语法:array.reduce(fu ...

  4. mysql二维转一维_二维数组转为一维数组

    1.很多时候会遇到二维数组,转为一维数组的时候会很苦恼,尤其是刚刚接触PHP的phper. 如下:将$arr转化为一维数组 $arr = Array ( Array ( 'uuid' => 'a ...

  5. 二维数组或三维数组转换为一维数组

    二维数组或三维数组转为一维数组 1.二维数组转换为一维数组: 设二维数组a[i][j],数组a行数x行,列数y列: 一维数组b[n],数组b最多存储m=x*y个元素. 令x=3,y=4则:m=12 此 ...

  6. php二维数组 转一维,php二维数组转一维数组方法

    如何将下面的二维数组转为一维数组. php二维数组转一维数组,下面介绍两种方法 $msg = array( array( 'id'=>'45s', 'name'=>'jacks' ), a ...

  7. vue将二维数组对象转为一维数组对象

    title: [{id: 1, name: '财会经济',children: [{id: 11, name: '初级会计'},{id: 12, name: '初级会计'}]},{id: 2, name ...

  8. python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法

    Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...

  9. 如何把二维数组放到一维数组,一维数组放到二维数组

    一维数组放到二维数组 var list = [1,2,3,4,5,6,7,8,9,10]; function pages (list) {const pages = []list.forEach((i ...

最新文章

  1. 如何把pdf转换为txt文档,pdf转txt的好方法
  2. Java集合框架(1)
  3. 4、java中的流程控制(程序结构)
  4. c语言中,char型数据是以什么形式存储的?
  5. java并发核心知识体系精讲_Java 面试突击之 Java 并发知识基础 amp; 进阶考点全解析
  6. 微信帝国进化史:一个通讯工具如何在八年内制霸互联网?
  7. javascript常见错误
  8. VS 2015 搭建Google Test
  9. 拍照尺寸 ios_即将收费!11款价值80元iOS限免应用,全部免费下载
  10. 相机取相,如何给类似圆柱的侧面打光均匀
  11. java mac转unix_管理Java类路径(UNIX和Mac OS X)
  12. 别再自己抠图了,Python教你一招弄完
  13. 大航海懒神辅助工具全部更新完毕,祝大家航海愉快!
  14. 登录失败提示账号或密码错误!
  15. STL源码剖析(十三)关联式容器之rb_tree
  16. python排名差怎么改,2017中国大学排名爬虫代码修改
  17. CSU2020期中测试模拟题1 问题E:小帅的字符串
  18. 转:开源图形库 c语言-图形图像库 集合
  19. 希捷的2种企业级硬盘
  20. Ipinstall软件工具-可视对讲

热门文章

  1. mysqldump导出数据库 (dos环境下)
  2. vue.js中的v-model指令的深刻理解
  3. Java面向对象--小游戏2
  4. 学生信息的电子化管理考试题
  5. SpringMVC @ModelAttribute详解
  6. openwrt系统安装到云服务器异常,OpenWrt路由器系统下服务OpenClash 安装教程及其折腾踩坑记录...
  7. mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
  8. sql server解析xml属性为表格_[Mybatis][基础支持层]mapper xml sql 解析
  9. python将数据存入数据库_Python读取NGINX日志将其存入数据库
  10. 【Numpy学习记录】np.cov详解