PHP处理二维数组:去除重复、排序与转换
"这篇文档主要介绍了如何在PHP中处理二维数组,包括去除重复项、排序、转换和去空白等操作。提供了自定义函数实现二维数组的独特处理方式,并给出了示例代码进行演示。" 在PHP中处理二维数组是常见的任务,尤其是在处理数据库查询结果或进行数据处理时。本篇文档主要探讨了以下几个方面: 1. 去除二维数组中的重复项: PHP内置的`array_unique()`函数可以用于去除一维数组中的重复值,但对二维数组并不直接适用。文中提供了一个名为`unique_arr()`的自定义函数,它接受一个二维数组作为参数,通过`implode()`和`explode()`函数将二维数组转换为一维数组,然后利用`array_unique()`去除重复项,最后再根据需求转换回二维数组。 2. 排序二维数组: `array_reverse()`函数可以用于反向排序数组,如果设置第二个参数为`true`,则可以保持键值关联。此外,`array_multisort()`函数可以用于多维数组的排序,但需要更复杂的逻辑来处理。 3. 转换二维数组: - `array_keys()`返回数组中的所有键,形成一个新的一维数组。 - `array_values()`返回数组中的所有值,形成一个新的一维数组。 - 文中`unique_arr()`函数还允许用户选择是否保留原始键(`$stkeep`)和转换为特定格式(`$ndformat`),提供了更大的灵活性。 4. 去除二维数组中的空白: 文档中没有直接提到去除二维数组中的空白,但在实际操作中,可以使用`array_map()`结合`trim()`函数去除字符串中的前后空格。 示例代码展示了如何使用`unique_arr()`函数,其中`$array2D`是一个包含重复元素的二维数组,调用`unique_arr($array2D, true)`会保留原有的键并去除重复的子数组。 5. 输出格式化: 提到了一个名为`printr()`的自定义函数,该函数用于以预格式化的HTML形式打印数组,方便在网页上查看和调试。 总结来说,这篇文档提供了一种处理二维数组的方法,特别是对于去除重复项和保持键值关联的情况,通过自定义函数`unique_arr()`实现了灵活的解决方案。同时,也提醒了读者在处理数组时可以使用PHP提供的多种内置函数,如`array_keys()`, `array_values()`, `array_reverse()`等。在实际编程中,根据具体需求选择合适的方法,可以有效地提高代码效率和可读性。
array_keys($array) //返回所有键名
array_values($array) //返回所有键值
$result=array_reverse($input); //将数组颠倒,不保留键名
$result_keyed=array_reverse($input,true); //将数组颠倒,保留键名
array_keys($array,"blue"); //返回值为blue的键名
1. PHP二维数组去重复项函数
PHP数组去除重复项 有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组 的 array_unique函数
Php代码 收藏代码
function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
// 判断是否保留一级数组键 (一级数组键可以为非数字)
if($stkeep) $stArr = array_keys($array2D);
// 判断是否保留二级数组键 (所有二级数组键必须相同)
if($ndformat) $ndArr = array_keys(end($array2D));
//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
foreach ($array2D as $v){
$v = join(",",$v);
$temp[] = $v;
}
$temp = array_unique($temp);
//再将拆开的数组重新组装
foreach ($temp as $k => $v)
{
if($stkeep) $k = $stArr[$k];
if($ndformat)
{
$tempArr = explode(",",$v);
foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
}
else $output[$k] = explode(",",$v);
}
return $output;
}
Php代码 收藏代码
$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333'));
print_r($array2D);
print_r(unique_arr($array2D,true));
2. 二维数组的排序方法
一维数组排序方法:
剩余10页未读,继续阅读
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦