一、对于一二维数组重新组合为另一个二维数组,根据键值名称对一个二维数组进行重新组合例:

/*$paramArray=array( 
* 'a'=>array('0'=>'1','1'=>'1','2'=>'1'),
* 'b'=>array('0'=>'2','1'=>'2','2'=>'2','3'=>'2'),
* 'c'=>array('0'=>'3','1'=>'3'),
* )重组为
* array( * '0'=>array('a'=>'1','b'=>'2','c'=>'3'),
* '1'=>array('a'=>'1','b'=>'2','c'=>'3')
* '2'=>array('a'=>'1','b'=>'2'),
* '3'=>array('b'=>'2'),
* )
*/ function reArray($paramArray) {
foreach ($paramArray as $k => $v) {
foreach ($v as $k1 => $v1) {
$param[$k1][$k]=$v[$k1];
}
}
return $param;
}

二、两个已经按倒叙排列的二维数组,组合到一起,根据某一字段(键值)依然按倒叙排列,可以直接调用以下函数,如何需要反过来排序组合,只需将while中的if判断更改

//问题和回答数组组合到新数组,倒叙排列时间最新在上
function reArray($arr1,$arr2) {
$newArr=array();
$arr1len= count($arr1);
$arr2len= count($arr2);
$i=0;$j=0;$n=0;
while($i<$arr1len && $j<$arr2len){
$key1= $arr1[$i]['key'];
$key2= $arr2[$j]['key'];
if($key1>$key2){
$t=$n++;
$newArr[$t]=$arr1[$i];$i++;
}elseif($key1<$key2){
$t=$n++;
$newArr[$t]=$arr2[$j];$j++;
}
}
if($i==$arr1len){
while ($j<$arr2len){
$t=$n++;
$newArr[$t]=$arr2[$j];$j++;
}
} else if($j==$arr2len){
while ($i<$arr1len){
$t=$n++;
$newArr[$t]=$arr1[$i];$i++;
}
}
return $newArr;
}

三、对于一个二维数组的某个字段(键值)进行排序

   /*对一个二维数组某个字段进行排序*/
function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){
if(is_array($multi_array)){
foreach ($multi_array as $row_array){
if(is_array($row_array)){
$key_array[] = $row_array[$sort_key];
}else{
return false;
}
}
}else{
return false;
}
array_multisort($key_array,$sort,$multi_array);
return $multi_array;
}

小笔记(二):php数组的更多相关文章

  1. JavaScript笔记(二)——常用数组、字符串方法的应用

    1.将字符串中的字符翻转,比如'hello',翻转成'olleh'. var arr=[]; function reverseString(str) { arr=str.split("&qu ...

  2. Java 学习笔记 二维数组和对象数组

    定义二维数组 int[][] a = new int[4][5]; 可以不指定列数 int[][] a = new int[4][]; 获取行 int i = a.length(); 如果使用第一个例 ...

  3. 剑指offer学习读书笔记--二维数组中的查找

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都是按照从上到下递增的顺序排序.请设计一个函数,输入这样的一个二维数组和一个整数,判断数组是否含有这个整数. 1 2 8 9 2 4 9 1 ...

  4. c# 类;一维数组;二维数组

    1. 输入邮箱帐号,判断格式是否正确  (1)有且只有一个@          Contains IndexOf ==LastIndexOf  (2)不能以@开头           StartsWi ...

  5. C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件

    阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...

  6. C语言笔记(二维数组与数值指针)

    一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数 ...

  7. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  8. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  9. Python创建二维数组(关于list的一个小坑)

    0.目录 1.遇到的问题 2.创建二维数组的办法 3.1 直接创建法 3.2 列表生成式法 3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作 ...

随机推荐

  1. WINFORM跟随WPF窗体移动

    <Window x:Name="mainWindow1" x:Class="WpfApplication9.MainWindow"         xml ...

  2. netbeans下将全部jar包打成一个,俗称fat jar

    netbeans的java项目中.默认会将配置好的外部引用jar包,复制到dist文件夹的lib文件夹中去.假设须要公布出去.就须要将dist文件夹生成的jar和lib文件夹都拷贝出去公布,不方便. ...

  3. MySQL参数优化

    目前针对MySQL数据库进行了一些参数优化,具体如下: my.ini / my.cnf 参数说明 #使用查询缓存 query_cache_size=100M                     # ...

  4. gallery左右滑动时图片淡入淡出

    前几天,公司项目有一个功能要做成滑动图片的淡入淡出,要一边滑动一边改变,所以ViewFlipper左右滑动效果就不能了.网上找了很久,也找不到资料,所以自己写了一个,通过滑动改变imageView的透 ...

  5. Xcode 4-PBXcp error修复-No such file or directory

    Xcode 4-PBXcp error修复-No such file or directory (2013-05-02 15:20:50) 转载▼ 标签: apple iphone ios 移动开发 ...

  6. 【转】开发者分享如何创造一款优秀的iOS游戏——2013-08-25 17

    http://game.dapps.net/gamedev/experience/889.html 创造出<Temple Run>的夫妻团队在高峰时期每天能够获得"好几万&quo ...

  7. log4j.properties文件配置--官方文档

    Default Initialization Procedure The log4j library does not make any assumptions about its environme ...

  8. 并发与多版本:update重启动问题

    以下演示重启动问题,请注意 before触发器和after触发器的行为区别,因为before触发器会触发两次而导致重启动问题,因此使用after触发器更加高效,应该尽量避免在所有触发器中使用自治事务 ...

  9. SWFObject2.0

    PROBLEM: using % in the height and width(e.g. 100%) with the SWFObject 2.0 (or 2.1) with dynamic pub ...

  10. java Spring 在WEB应用中的实例化

    .前面讲解的都是通过直接读取配置文件,进行的实例化ApplicationContext AbstractApplicationContext app = new ClassPathXmlApplica ...