php 多维数组简化

 1 <?php
 2     $a=[
 3
 4         ‘a‘=>[‘d‘=>[‘aa‘=>1,‘bb‘=>2,‘cc‘=>3]],
 5         ‘b‘=>[‘f‘=>[‘dd‘=>4,‘ee‘=>5,‘ff‘=>6]],
 6         ‘c‘=>[‘g‘=>[‘gg‘=>7,‘hh‘=>8,‘ii‘=>9]],
 7         ];
 8
 9
10         $b=reduce_arr($a);
11         echo ‘<pre>‘;
12         var_dump($b);
13
14
15  function reduce_arr ($arr) {
16
17         static $temp = array(); // 声明了一个静态局部变量
18
19         foreach ($arr as $key => $val) {
20             if (is_array($val)) {
21                 reduce_arr($val);
22             } else {
23                 $temp[$key] = $val;
24             }
25         }
26         return $temp;
27 }
28  ?>
时间: 2024-10-14 14:04:09

php 多维数组简化的相关文章

二维数组与冒泡排序

记住数组顺序是从0开始的!!! 记住数组顺序是从0开始的!!! 记住数组顺序是从0开始的!!! 重要的事情说三遍! 二维数组的静态位 一,Arrays.sort(lsz),//排序操作针对于整型数据.如果是char型数据或者其他,则按照unicode的编码顺序排序 二,Arrays.copyOf(lsz , 2),//复制操作可以复制全部或者一部分的长度,上式中就是取前两位数组. Arrays.copyOfRange(lsz, from, to)//复制操作,注意力两点,首先这个段位的长度可以大

Java 多维数组遍历详解

数组是Java中的一种容器对象,它拥有多个单一类型的值.当数组被创建的时候数组长度就已经确定了.在创建之后,其长度是固定的.下面是一个长度为10的数组: public class ArrayDemo { private int arraySize=10; public int[] arrayOfIntegers = new int[arraySize]; } 上面的代码是一维数组的例子.换句话说,数组长度只能在一个方向上增长.很多时候我们需要数组在多个维度上增长.这种数组我们称之为多维数组.为简

求二维数组中子数组和中最大的值,及子数组

求二维数组中子数组和中最大的值,及子数组 个人信息:就读于燕大本科软件工程专业 目前大三; 本人博客:google搜索"cqs_2012"即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献; 编程语言:C++ ; 编程坏境:Windows 7 专业版 x64; 编程工具:vs2008; 制图工具:office 2010 powerpoint; 硬件信息:7G-3 笔记本; 真言 每次着急写程序,碰到问题就头疼,头疼之后便是满满的收获,付出总有回报. 题目 求

多维数组的遍历性能

数组是Java中的一种容器对象,它拥有多个单一类型的值.当数组被创建的时候数组长度就已经确定了.在创建之后,其长度是固定的.下面是一个长度为10的数组: public class ArrayDemo { private int arraySize=10; public int[] arrayOfIntegers = new int[arraySize]; } 上面的代码是一维数组的例子.换句话说,数组长度只能在一个方向上增长.很多时候我们需要数组在多个维度上增长.这种数组我们称之为多维数组.为简

VB.NET 数组的定义 动态使用 多维数组

我们都知道在全部程序设计语言中数组都是一个非常重要的概念,数组的作用是同意程序猿用同一个名称来引用多个变量,因此採用数组索引来区分这些变量.非常多情况下利用数组索引来设置一个循环,这样就能够高效地处理复杂的情况,因此在非常多情况下,使用数组能够缩短或者简化程序的代码.本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助. 数组中的第一个元素的下标称为下界,最后一个元素的下标称为上界,其余的元素连续地分布在上下界之间,而且数组在内存中也是用连续的区域来存储的,所以要求声明数组每维的长度不能

typedef 与指针、多维数组

1.在typedef中使用指针往往会带来意外的结果.如下: typedef string *pstring; const pstring cstr; 绝大数人刚开始都会认为cstr是一种指针,它指向const对象,即const pstring cstr 等价于const string *cstr,其实,这是不对的,错误的原因在于单纯地将typedef当做文本扩展了. 首先,我们要认识到pstring它是一个类型,表示的是指向string的指针.声明const pstring时,const修饰的是

多维数组和指针探讨

??????? 前段时间刷题中,无意发现自己对多维数组和指针的关系不是很明确,开始google,没发现太靠谱的,于是翻书,果然在<C Primer Plus>中找到一段,分析的如此透彻,是不是这个太基础了,以至于别人都不愿意在网上写出来,以下摘自书中,并加上自己的理解: ? 指针和多维数组有什么关系?为什么我们需要知道它们之间的关系?函数是通过指针来处理多维数组的,因此在使用这样的函数之前,您需要更多地了解指针.对于第一个问题,让我们通过几个例子来找出答案.为简化讨论,我们采用比较小的数组.假

【剑指Offer学习】【面试题:二维数组中的查找】PHP实现

最近一直看剑指Offer.里面很多算法题.于是就想着用PHP来显示一下. 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 拿到这个题目.我们第一个反应,就是遍历二维数组.然后逐个进行比较.我们不难用PHP进行实现.于是有了下面的代码 1 function TwoArrayFind($array,$search) { 2 $found = false; 3 4 if(e

【共读Primer】20.&lt;3.6&gt; 多维数组 Page112

C++中的多位数组,严格来说是数组的数组. int ia[3][4]; //大小为3的数组,每个元素是含有4个整数的数组 // 大小为10的数组,每个元素都是大小为20的数组, // 这些数组的元素是含有30个整数的数组 int arr[10][20][30] = {0}; // 将所有元素初始化为 0 初始化多维数组 int ia1[3][4] = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; // 以下语句等价于上面的初始化 int ia2[3][4] = {