小笔记(二):php数组
一、对于一二维数组重新组合为另一个二维数组,根据键值名称对一个二维数组进行重新组合例:
/*$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数组的更多相关文章
- JavaScript笔记(二)——常用数组、字符串方法的应用
1.将字符串中的字符翻转,比如'hello',翻转成'olleh'. var arr=[]; function reverseString(str) { arr=str.split("&qu ...
- Java 学习笔记 二维数组和对象数组
定义二维数组 int[][] a = new int[4][5]; 可以不指定列数 int[][] a = new int[4][]; 获取行 int i = a.length(); 如果使用第一个例 ...
- 剑指offer学习读书笔记--二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都是按照从上到下递增的顺序排序.请设计一个函数,输入这样的一个二维数组和一个整数,判断数组是否含有这个整数. 1 2 8 9 2 4 9 1 ...
- c# 类;一维数组;二维数组
1. 输入邮箱帐号,判断格式是否正确 (1)有且只有一个@ Contains IndexOf ==LastIndexOf (2)不能以@开头 StartsWi ...
- C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件
阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...
- C语言笔记(二维数组与数值指针)
一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数 ...
- Java菜鸟学习笔记--数组篇(三):二维数组
定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- Python创建二维数组(关于list的一个小坑)
0.目录 1.遇到的问题 2.创建二维数组的办法 3.1 直接创建法 3.2 列表生成式法 3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作 ...
随机推荐
- 1513:二进制中1的个数 @jobdu
题目1513:二进制中1的个数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1341 解决:455 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: ...
- python中的对象拷贝
python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引用传递.那python怎样对列表和字典进行拷贝传递呢:标准库的copy模块提供了两个方法:copy和d ...
- C++ Code_combobox
主题 1. 代码设置组合框风格 2. 调整组合框列表部分大小 3. 代码设置组合框相关属性 4. 自绘组合框 5. 用代码让combobox的的列表弹出 6. 不添加重复项目 代码 ...
- [Javascript] Implement zip function
1. Use a for loop to traverse the videos and bookmarks array at the same time. For each video and bo ...
- mysql-gdb--oracle
https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should
- 从cmd中进入MySQL的命令界面
两种方式进入mysql命令界面 第一.直接开始界面→搜索mysql客户端登陆界面 第二.从cmd中进入MySQL的命令界面 2010-05-17 10:02:05| 分类: mysql|字号 订阅 ...
- Ⅶ.spring的点点滴滴--自定义对象行为
承接上文 自定义对象行为 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class lifeCycle : Spring.Objects.Factory. ...
- 转:ORACLE制造方法的比较
转自:http://blog.itpub.net/133041/viewspace-438549/ 1.离散制造. 2.重复制造 3.流式制造 Oracle Applications 支持离散.项目. ...
- 跨时钟域设计【二】——Fast to slow clock domain
跨时钟域设计中,对快时钟域的Trigger信号同步到慢时钟域,可以采用上面的电路实现,Verilog HDL设计如下: // Trigger signal sync, Fast clock dom ...
- Linq to SQL只支持SQL Server(所选对象使用不支持的数据提供程序)