php 多维数组转换
把字符类型转换成时间类型的,先用foreach遍历出来时间,在通过时间函数转换成时间格式;
例子:
<?php
echo "<pre>";
$lsrfield = array(
0 =>array(
'lsrtime' => '1410710400',
'lsrqian' => '完善个人资料奖励积分',
),
1 =>array(
'lsrtime' => '2410710400',
'lsrqian' => '完善个人资料奖励积分',
),
2 =>array(
'lsrtime' => '3410710400',
'lsrqian' => '完善个人资料奖励积分',
)
);
print_r($lsrfield);
foreach($lsrfield as $k => $val){
$lsrfield[$k]['lsrtime'] = date('Y-m-d H:i:s',$val['lsrtime']);
}
print_r($lsrfield);
?>
通过转换出的输出的结果是:
Array
(
[0] => Array
(
[lsrtime] => 2014-09-14 16:00:00
[lsrqian] => 完善个人资料奖励积分
) [1] => Array
(
[lsrtime] => 1910-04-17 11:18:24
[lsrqian] => 完善个人资料奖励积分
) [2] => Array
(
[lsrtime] => 1941-12-24 13:05:04
[lsrqian] => 完善个人资料奖励积分
) )
通过上面的例子,我们可以举一反三,可以用同样的方法可转化打其他的字符类型;
通常在返回数据的时候,我们的数据是通过两个表查询或者是多个表查询的结果,但是并不是我们想要的结果数组,所以我们要对数组进行处理,如此才能得到我们想要的结果;
比如说:
例子:如果两个数据组中from_userid相同时就保留$select中的数,不相同时,两个数组的数据都不保留?
这是一个数组
$select=Array(
[0] => Array (
[id] => 1048
[from_userid] => 0
[thru_userid] => 1243
[addtime] => 2015-01-11 13:11:15
[num] => 11
) [1] => Array (
[id] => 1832
[from_userid] => 56
[thru_userid] => 57
[addtime] => 2014-12-20 16:42:45
[num] => 1
)
[2] => Array
(
[id] => 561
[from_userid] => 728
[thru_userid] => 729
[addtime] => 2015-01-05 16:47:02
[num] => 1
)
}
$count2=Array(
[0] => Array(
[id] => 1009
[from_userid] => 1201
[thru_userid] => 1202
[addtime] => 2015-01-09 18:21:39
)
[1] => Array(
[id] => 561
[from_userid] => 728
[thru_userid] => 729
[addtime] => 2015-01-05 16:47:02
)
)
下面是处理合并数据组的代码
$n=0; //定义新的数组重零开始排序
$newResult=array(); //定义一个数组
for($i=0;$i<count($result);$i++){
for($j=0;$j<count($count2);$j++){
if($result[$i]['from_userid']==$count2[$j]['from_userid']){ //判断是否相等
$newResult[$n]=$result[$i]; //定义一个数组来重新接收符合条件的数组
$n++;
break;
}
}
}
输出的结果是:
Array
(
[0] => Array
(
[id] => 561
[from_userid] => 728
[thru_userid] => 729
[addtime] => 2015-01-05 16:47:02
[num] => 1
)
}
总结:两个数组通过form_userid相同的而关联在一起的!所以如果form_userid相同的时候,只保留$select的数据,并把数据放到新数组$newResult当中去,如果form_userid不相同的时候,就去除去,这样就能得到我们想要的数据
例子2:在多维数组添加一个元素?
for($i=0;$i<count($select);$i++){
$select[$i]['num']=0;
}
用for循环就嫩实现这个效果!
例子3 :在一个多维数组当中添加一个一维数组?
$newlist=Array(
[0] => Array
(
[description] => <p dir="ltr">[鼓掌]
[addtime] => 2015-1-31 11:27
) [1] => Array
(
[description] => <p dir="ltr">[呵呵]
[addtime] => 2015-1-31 11:27
)
)
$users=Array(
[0] => Array
( [nickname] => 时光
[face_url] => http://cshk.oss-cn-hangzhou.aliyuncs.com/user/face/77/head.jpg
)
)
for($i=0;$i<count($newlist);$i++){ //把昵称和头像插入到$newlist数组当中去
$newlist[$i]['nickname']=$users['0']['nickname'];
$newlist[$i]['face_url']=$users['0']['face_url'];
}
得到的效果是:
$newlist=Array(
[0] => Array
(
[description] => <p dir="ltr">[鼓掌]
[addtime] => 2015-1-31 11:27
[nickname] => 时光
[face_url] => http://cshk.oss-cn-hangzhou.aliyuncs.com/user/face/77/head.jpg )
[1] => Array (
[description] => <p dir="ltr">[呵呵]
[addtime] => 2015-1-31 11:27
[nickname] => 时光
[face_url] => http://cshk.oss-cn-hangzhou.aliyuncs.com/user/face/77/head.jpg
)
)
总结:在$newlist数组中添加两个元素'nickname'和'face_url' 并且把$users中的数据合并到$newlist数组当中
例子3:如何将一维数组转换成多维数组
function partition( $list, $p ) { //$list 是数组参数,$p 是分成多维数组中下级数组数量;
$listlen = count( $list ); //算出$list数组的元素的数量
$partlen = floor( $listlen / $p ); //算出啊每个数组,保留几个元素
$partrem = $listlen % $p; //取模。意思就是取余,取$partlen得余数
$partition = array(); //定义一个数组来接收
$mark = 0;
for ($px = 0; $px < $p; $px++) {
$incr = ($px < $partrem) ? $partlen + 1 : $partlen; // ? 是三目运算符 如果$px < $partrem 那么输出的值是$partlen + 1,否则是 $partlen
$partition[$px] = array_slice( $list, $mark, $incr ); //array_slice(array,offset,length,preserve) 是offset从规定取出元素的开始位置。
$mark += $incr; //$mark自增,并赋值给$incr
}
return $partition;
}
$citylist = array( "Black Canyon City", "Chandler", "Flagstaff", "Gilbert", "Glendale", "Globe", "Mesa", "Miami",
"Phoenix", "Peoria", "Prescott", "Scottsdale", "Sun City", "Surprise", "Tempe", "Tucson", "Wickenburg" );
// var_dump($citylist);
print_r( partition( $citylist, 3 ) );
得到的效果:
Array
(
[0] => Array
(
[0] => Black Canyon City
[1] => Chandler
[2] => Flagstaff
[3] => Gilbert
[4] => Glendale
[5] => Globe
)
[1] => Array
(
[0] => Mesa
[1] => Miami
[2] => Phoenix
[3] => Peoria
[4] => Prescott
[5] => Scottsdale
)
[2] => Array
(
[0] => Sun City
[1] => Surprise
[2] => Tempe
[3] => Tucson
[4] => Wickenburg
)
)
php 多维数组转换的更多相关文章
- Python 迭代器&生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发
本节大纲 迭代器&生成器 装饰器 基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...
- C++笔记-数组指针/二维数组转换指针
参考资料: 1. 作者 BensonLaur :https://www.cnblogs.com/BensonLaur/p/6367077.html 2. https://blog.csdn.net/ ...
- JAVA描述算法和数据结构(01):稀疏数组和二维数组转换
本文源码:GitHub·点这里 || GitEE·点这里 一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反, ...
- C# 二维数组 转换成 DataTable
C# 数据转换 Overview C# 窗体操作中,有些比较特别的操作.但是为了方便我们不得不使用一些比较特别的手段. C#中二维数组转DataTable 首先,我们看一下我对二维数组的数据处理.这次 ...
- php 将一个二维数组转换成有父子关系的数组
<?php /** * Tree 树型类(无限分类) * * @author Kvoid * @copyright http://kvoid.com * @version 1.0 * @acce ...
- php将二维数组转换成我想要的一维数组
使用方法array_column($array,b,$arr): 参数说明:$array是我们原始的二维数组,B是我们想要的values,c是key 举个栗子:这是我原来的二维数组 这是我需要的一维数 ...
- php 二维数组转换成树状数组(转)
<?php/** * @param array $list 要转换的结果集 * @param string $pid parent标记字段 * @param string $level leve ...
- PHP中将二维数组 转换成字符串
function arr_to_str($arr) { $t ='' ; foreach ($arr as $v) { $v = join(",",$v); // 可以用implo ...
- 将二维数组转换成一维数组(基于reduce)
reduce:不改变原数组,返回一个新的数组.就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0], a ...
随机推荐
- em(倍)与px的区别(转载)
在国内网站中,包括三大门户,以及"引领"中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位.只有百度好歹做了个可调的表率.而 在大洋彼岸,几乎所有的主流站点都使 ...
- 《将博客搬至CSDN》 分类: 勉励自己 2014-09-05 14:29 43人阅读 评论(0) 收藏
搬家啦,上博客园关注我哦http://www.cnblogs.com/AsuraRoute 版权声明:本文为博主原创文章,未经博主允许不得转载.
- jquery插件,美化select标签
最近经常与select打交道,因为ie下的select实在太丑了,css怎么搞都搞不好看,因为程序已经写得差不多了,要再去模拟select改动太大,就想着能否不改动select,同时美化它.借鉴一下这 ...
- 什么是image crop?
一直对image crop很困惑,总算是看到了一篇描述较为简洁的说明:图像crop就是指从图像中移除不需要的信息,只保留需要的部分
- h.264并行解码算法3D-Wave实现(基于多核共享内存系统)
3D-Wave算法是2D-Wave的扩展.3D-Wave相对于只在帧内并行的2D-Wave来说,多了帧间并行,不用等待前一帧完成解码后才开始下一帧的解码,而是只要宏块的帧间参考部分以及帧内依赖宏块解码 ...
- JSch - Java实现的SFTP(文件下载详解篇)(转)
上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch实现文件下载的功能.并介绍一些SFTP的辅助方法,如cd,ls等. 同样,JSch的文件下载也支持三种传输模式:OVERWRI ...
- 编码问题(.java/.jsp/.js等文件的中文乱码)
乱码的出现是因为编码与解码的不一致造成的,假如你对“中文”两个字进行了gbk格式的保存,却用utf-8格式的解读,是肯定会出现乱码的. 如何避免中文乱码:应用上下统一用一种编码格式. utf-8或者g ...
- Autofac 之 基于 Castle DynamicProxy2 的 Interceptor 功能
Autofac 结合 Castle DynamicProxy2 功能 Autofac 不仅作为轻量级高效的 IoC 容器,而且还能很好的与 Castle.DynamicProxy2 结合 ...
- HDU 5924 Mr. Frog’s Problem 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
Mr. Frog's Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- 关于Marsedit和我的163博客
其实我一开始选择的并不是163的博客,感觉没什么新意,勾不起我的兴趣. 第一个我想写的是CSDN的博客,代码嘛,总要找个专业的网站来写,但是我发现了一个及其让我不爽的事情,我竟然在网页上无法新建一篇日 ...