`
lucklrj
  • 浏览: 24612 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

2维数组根据数组里的字段来构造树

    博客分类:
  • php
 
阅读更多
常见应用环境:

//把一个多维数组,按field 顺序建一个新的多维数组,层数为array_field的个数
function extended_array($array,$fields,$clear=1){
  $array_field=explode(",",$fields);
  $array_field_length=count($array_field);
  $tmp=array();
  foreach ($array as $key => $single_info){
    $next=&$tmp;
    foreach ($array_field as $index => $single_field) {
      $v=$single_info[$single_field];
      if(isset($next[$v])==false){
          $next[$v]=array();
      } 
      $next=&$next[$v];
      if($clear==1){
        unset($single_info[$single_field]);
      }
    }
    $next[]=$single_info;
  }
  return $tmp;
}

/*
$array=array();
$array[]=array("a"=>1,"b"=>1,"c"=>1,'d'=>"1");
$array[]=array("a"=>1,"b"=>1,"c"=>1,'d'=>"3");
$array[]=array("a"=>2,"b"=>2,"c"=>2,'d'=>"2");
$array[]=array("a"=>2,"b"=>3,"c"=>2,'d'=>"3");
$array[]=array("a"=>2,"b"=>5,"c"=>5,'d'=>"4");
$array[]=array("a"=>2,"b"=>5,"c"=>6,'d'=>"7");

print_r(extended_array($array,"a,b"));
*/

分享到:
评论

相关推荐

    ccf.rar_ccf_二维数组

    为了解决这个问题,我们可以使用链表来动态地创建和管理二维数组。 链表是一种数据结构,其中的元素(节点)不是连续存储在内存中的,而是通过指针相互连接。在C++中,我们可以创建一个链表节点类,该类包含两个...

    PHP多维数组指定多字段排序的示例代码

    当需要根据多个字段进行排序时,可以将各个字段对应的值保存在一个新的一维数组中,然后将这些新数组和原始多维数组一起作为参数传递给`array_multisort`。排序时,`array_multisort`会首先根据第一个数组进行排序,...

    php根据某字段对多维数组进行排序的方法

    当需要根据某个字段值来排序多维数组时,我们可以先根据该字段值构造一个一维数组,然后使用array_multisort()将这个一维数组和原始的多维数组关联起来,按照这个一维数组的顺序来重新排序多维数组。 根据文件中...

    RGB数据生成BMP位图(其中包括RGB数组随机生成)

    1. **创建RGB数组**:根据指定的图像尺寸,生成一个二维数组,每个元素包含红、绿、蓝三个分量的随机整数。 2. **计算位图大小**:根据RGB数组的尺寸和颜色深度,计算出位图文件的实际大小。由于BMP文件的行必须是4...

    C#数组、结构和枚举PPT.ppt

    结构可以包含构造函数、常数、字段、方法、属性、索引器、运算符和嵌套类型。 C#枚举是一种命名的常数集合,用于声明一组命名的常数。例如,声明一个名为`Colors`的枚举:`public enum Colors { Red, Green, Blue }...

    新东方JAVA课程PPT课件 数组(下)

    二维数组可以看作是一组一维数组的集合,常用于处理表格数据。声明二维数组的方式是`类型[][] 数组名`。创建和初始化二维数组可以像这样: ```java int[][] matrix = new int[3][4]; // 或者 int[][] matrix = { {...

    java 课件 数组、枚举及注解

    一维数组是数组的基础形式,它类似于一个线性的序列,可以存储相同类型的数据。在Java中,定义一维数组有两种方式: 1. 方式1:`<类型><数组名>[];` 2. 方式2:`<类型>[]{}` 例如,`int a[];` 和 `String[] person...

    Java基础复习笔记01数组_内存形式_父子_内存控制

    在内存中,二维数组仍然是一段连续的内存区域,其中每个元素又指向另一段连续的内存区域,即每个一维数组。 #### 3. 对象的产生 **对象产生的过程** 在Java中,对象的创建通常通过`new`关键字完成。当使用`new`...

    计算机软件基础:13第四章数据结构树

    例如,对于n个节点的三次树,可以使用一维数组、二维数组或动态数组存储节点和指针场。动态分配内存的代码片段包括: ```c // 结点存储动态数组 tree = (TREE *)malloc(n*sizeof(TREE)); // 指针场存储动态数组 ...

    计算机软件基础:13第四章数据结构树.doc

    例如,对于n个节点的三次树,可以定义一个一维数组来存储节点数据,然后为每个节点分配m+1个指针字段,分别用于父节点和子节点的引用。 总之,树数据结构是理解和处理复杂数据关系的基础,广泛应用于各种算法和软件...

    mwArray类使用

    `mwArray Get(const char* name, mwSize num_indices, ...)`:返回结构体数组中特定字段 `name` 的值,索引从1开始计数。 通过以上对 `mwArray` 类的详细介绍,可以看出它为C/C++与MATLAB之间的数据交换提供了一个...

    计算机软件-商业源码-09 初始化数组和记录.zip

    数组初始化也扩展到了多维数组,如二维数组,用于表示表格或矩阵。例如,C++中的二维数组初始化: ```c++ int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; ``` **记录(结构体或类)** 记录是将不同...

    C程序设计基础数据类型枚举结构数组实用PPT课件.pptx

    在C#中,一维数组的声明和初始化如下: ```csharp int[] array = new int[5]; // 声明并分配长度为5的整型数组 int[] arr = {0, 1, 2, 3, 4}; // 初始化的同时声明数组 ``` 数组元素可以通过索引来访问,索引...

    JS自动把JSON数据转换成表格

    每次调用时,传入表头标题和字段名,这两个值会被存储在相应的数组中,并且 `aryLen` 会递增以记录当前已有多少个字段。 #### 4. `createTableAsObj` 方法 ```javascript this.createTableAsObj = function () { ...

    数据结构 数组顺序存储详细介绍

    其中,`base` 字段是数组元素的基址,`dim` 字段是数组的维数,`bounds` 字段是数组维界基址,`constants` 字段是数组映象函数常量基址。 在初始化数组时,需要将数组的维数和每个维度的大小传递给 `InitArray` ...

    matlab编程和数据类型函数.docx

    - isvector:判断输入是否为一维数组(向量)。 - permute:重新排列N维数组的维度。 - realmax和realmin:分别代表正浮点数的最大值和最小正规范化浮点数。 - reshape:将数组重塑为新的形状。 - squeeze:...

    Java基本知识点总结

    - **二维数组**:二维数组可以理解为一维数组的数组,常用于表示表格数据。 - **数组操作**:包括声明、初始化、赋值、遍历等操作。数组长度在声明时就必须确定,并且不可更改。 4. **流程控制**: - **条件语句...

    php5.5新数组函数array_column使用

    如上文所示,我们可以创建一个名为`array_column`的函数,它通过遍历`$input`数组并检查`$columnKey`和`$indexKey`来构造新的数组。代码中的逻辑判断确保了对不同类型的`$columnKey`和`$indexKey`的支持。 自定义`...

    php array_map array_multisort 高效处理多维数组排序

    具体操作过程中,我们可以使用`array_map`来提取用于排序的字段值构成一个新的一维数组。然后,利用`array_multisort`根据提取出来的这个一维数组进行排序,同时参考原始多维数组的索引,以便在排序后重建原始数组的...

Global site tag (gtag.js) - Google Analytics