PHP多维数组去重
2017-05-15 15:26
260 查看
最近用到了一个获取历史会议列表的问题,需要去这个多维数组去重后返回返回给客户端,这里使用了几个php的组装函数,分享下,示例代码如下:
<?php
$str = '{
"status": 0,
"result": [
{
"hostName": "杨新",
"pcode2": "41675441",
"email": "xin.yang@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "杨新",
"pcode2": "41675441",
"email": "xin.yang@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "中信国安科技控股有限公司",
"pcode2": "9730284461",
"email": "liuxiao@gakj.xx.com",
"selfName": "邵兵"
},
{
"hostName": "中信国安科技控股有限公司",
"pcode2": "9730284461",
"email": "liuxiao@gakj.xx.com",
"selfName": "邵兵"
},
{
"hostName": "刘惠",
"pcode2": "64068956",
"email": "huijie.liu@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "刘惠",
"pcode2": "64068956",
"email": "huijie.liu@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "刘凯南",
"pcode2": "14818360",
"email": "kainan.liu_3@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "刘凯南",
"pcode2": "14818360",
"email": "kainan.liu_3@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "宋纬奇",
"pcode2": "62947142",
"email": "weiqi.song@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "宋纬奇",
"pcode2": "62947142",
"email": "weiqi.song@xx.cn",
"selfName": "邵兵"
}
],
"content_type": "application/json"
}';
$res = json_decode($str,true);
echo 'num: '.count($res['result']);
print_r($res['result']);
echo "</br></br></br>";
$rrr = $res['result'];
$serializeArrs = array_map('serialize',$rrr);
$uniqueArrs = array_unique($serializeArrs);
$unserializeArrs = array_map('unserialize',$uniqueArrs);
print_r($unserializeArrs);
echo "</br></br></br>";
echo json_encode($unserializeArrs);
exit;
关于php的序列化的确是几年前才使用的技术,目前大家更多的是使用json_encode,且后者效率也比php的序列化高。
序列化也还是很有用的。上面的例子中主要是函数array_map()和array_unique()的结合使用。
关于序列化和json编码的效率对比的文章,可以参考 http://blog.csdn.net/hguisu/article/details/7651730
<?php
$str = '{
"status": 0,
"result": [
{
"hostName": "杨新",
"pcode2": "41675441",
"email": "xin.yang@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "杨新",
"pcode2": "41675441",
"email": "xin.yang@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "中信国安科技控股有限公司",
"pcode2": "9730284461",
"email": "liuxiao@gakj.xx.com",
"selfName": "邵兵"
},
{
"hostName": "中信国安科技控股有限公司",
"pcode2": "9730284461",
"email": "liuxiao@gakj.xx.com",
"selfName": "邵兵"
},
{
"hostName": "刘惠",
"pcode2": "64068956",
"email": "huijie.liu@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "刘惠",
"pcode2": "64068956",
"email": "huijie.liu@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "刘凯南",
"pcode2": "14818360",
"email": "kainan.liu_3@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "刘凯南",
"pcode2": "14818360",
"email": "kainan.liu_3@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "宋纬奇",
"pcode2": "62947142",
"email": "weiqi.song@xx.cn",
"selfName": "邵兵"
},
{
"hostName": "宋纬奇",
"pcode2": "62947142",
"email": "weiqi.song@xx.cn",
"selfName": "邵兵"
}
],
"content_type": "application/json"
}';
$res = json_decode($str,true);
echo 'num: '.count($res['result']);
print_r($res['result']);
echo "</br></br></br>";
$rrr = $res['result'];
$serializeArrs = array_map('serialize',$rrr);
$uniqueArrs = array_unique($serializeArrs);
$unserializeArrs = array_map('unserialize',$uniqueArrs);
print_r($unserializeArrs);
echo "</br></br></br>";
echo json_encode($unserializeArrs);
exit;
关于php的序列化的确是几年前才使用的技术,目前大家更多的是使用json_encode,且后者效率也比php的序列化高。
序列化也还是很有用的。上面的例子中主要是函数array_map()和array_unique()的结合使用。
关于序列化和json编码的效率对比的文章,可以参考 http://blog.csdn.net/hguisu/article/details/7651730
相关文章推荐
- 将PHP多维数组转换成 javascript 数组
- PHP:多维数组及数组的赋值
- PHP多维数组的排序
- php在多维数组中根据键名快速查询其父键以及父键值的代码
- PHP 获取一维或多维数组某个特定键(数组下标)的所有值
- PHP - Manual手册 - V. Array 数组函数 - array_multisort对多个数组或多维数组进行排序
- php的多维数组
- PHP多维数组排序
- PHP 多维数组排序(usort,uasort)
- [基础]php递归将多维数组转换为一维数组
- PHP 中检查是否关联数组(多维数组)的方法 (UPDATE!)
- PHP数组的初始化 访问数组 数组操作符 多维数组的排序 对数组重新排序 从文件载入数组的方法 数组其他有用的操作 统计数组个数 将数组转换称标量变量 extract()
- PHP多维数组排序
- PHP多维数组排序
- php获得二维或多维数组的第一维的长度
- PHP开发中多维数组无法正常输出的问题
- PHP 多维数组排序实现代码
- PHP 多维数组删除某字段或某几个字段
- array_multisort实现PHP多维数组排序示例讲解
- PHP一个简单的多维数组拆分字符串