小笔记(二):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代码的时候遇到了一个大坑,差点就耽误我交作 ...
随机推荐
- 使用Ready2Search来定制Firefox和Chrome的搜索框
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Ready2Search来定制Firefox和Chrome的搜索框.
- Javascript 基础知识笔记
标签(空格分隔): 廖老师学习笔记 javascript 基本入门 根据廖雪峰老师官网,自己看后的简单笔记 第一小节 基本知识 <script type="text/javascrip ...
- C# 读取 timestamp 时间戳 值为byte[] 类型时转换为时间戳字符串
C# 中如何读取出来的时间戳为 byte[] 类型的话,用以下方式转换成 16进制字符串 string tmpUfts = "0x"+ BitConverter.ToString( ...
- iOS VoiceOver Programming Guide
VoiceOver是苹果“读屏”技术的名称,属于辅助功能的一部分.VoiceOver可以读出屏幕上的信息,以帮助盲人进行人机交互. 这项技术在苹果的各个系统中都可以看到,OS X,iOS,watchO ...
- 这种写法用过没:string.Format("{0,-10}", 8)
1 2 3 4 var s1 = string.Format("{0,-10}", 8); var s2 = string.Format("{0,10}", 8 ...
- jquery登录验证插件
最近写了个登录验证的jquery插件,其中功能还不是很完善,需要进一步改进,先放出来看看先. /** * 功能描述:本模块实现普通网站登录验证,以后可以添加二维码验证,以及第三方帐号登录验证 * 关联 ...
- Java并发——Fork/Join框架
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ...
- Magento 中的多个类别的筛选产品集合
通过在 Magento 中的多个类别的筛选产品集合. 按只 1 类别筛选 Magento 提供筛选器,可以使用直接从该集合的类型: $_category = Mage::getModel('catal ...
- MySQL数据库分表的3种方法
原文地址:MySQL数据库分表的3种方法作者:dreamboycx 一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目 ...
- c语言对于文本的基本操作
字符读写函数 :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式化读写函数:fscanf和fprinf 1.字符读写: fgetc函 ...