PHP数组操作类实例

上传人:洪易 文档编号:39960786 上传时间:2018-05-21 格式:DOCX 页数:7 大小:26.11KB
返回 下载 相关 举报
PHP数组操作类实例_第1页
第1页 / 共7页
PHP数组操作类实例_第2页
第2页 / 共7页
PHP数组操作类实例_第3页
第3页 / 共7页
PHP数组操作类实例_第4页
第4页 / 共7页
PHP数组操作类实例_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《PHP数组操作类实例》由会员分享,可在线阅读,更多相关《PHP数组操作类实例(7页珍藏版)》请在金锄头文库上搜索。

1、本文实例讲述了 PHP 数组操作类。分享给大家供大家参考。具体如下:class ArrayHelper/* 从数组中删除空白的元素(包括只有空白字符的元素)* 用法:* code php* $arr = array(, test, );* ArrayHelper:removeEmpty($arr);* dump($arr);* / 输出结果中将只有 test* endcode* param array $arr 要处理的数组* param boolean $trim 是否对数组元素调用 trim 函数*/static function removeEmpty(else$value = trim

2、($value);if ($value = )unset($arr$key);elseif ($trim)$arr$key = $value;/* 从一个二维数组中返回指定键的所有值* 用法:* code php* $rows = array(* array(id = 1, value = 1-1),* array(id = 2, value = 2-1),* );* $values = ArrayHelper:getCols($rows, value);* dump($values);* / 输出结果为* / array(* / 1-1,* / 2-1,* / )* endcode* par

3、am array $arr 数据源* param string $col 要查询的键* return array 包含指定键所有值的数组*/static function getCols($arr, $col)$ret = array();foreach ($arr as $row)if (isset($row$col) $ret = $row$col;return $ret;/* 将一个二维数组转换为 HashMap,并返回结果* 用法 1:* code php* $rows = array(* array(id = 1, value = 1-1),* array(id = 2, value

4、 = 2-1),* );* $hashmap = ArrayHelper:toHashmap($rows, id, value);* dump($hashmap);* / 输出结果为* / array(* / 1 = 1-1,* / 2 = 2-1,* / )* endcode* 如果省略 $valueField 参数,则转换结果每一项为包含该项所有数据的 数组。* 用法 2:* code php* $rows = array(* array(id = 1, value = 1-1),* array(id = 2, value = 2-1),* );* $hashmap = ArrayHelp

5、er:toHashmap($rows, id);* dump($hashmap);* / 输出结果为* / array(* / 1 = array(id = 1, value = 1-1),* / 2 = array(id = 2, value = 2-1),* / )* endcode* param array $arr 数据源* param string $keyField 按照什么键的值进行转换* param string $valueField 对应的键值* return array 转换后的 HashMap 样式数组*/static function toHashmap($arr,

6、$keyField, $valueField = NULL)$ret = array();if ($valueField)foreach ($arr as $row)$ret$row$keyField = $row$valueField;elseforeach ($arr as $row)$ret$row$keyField = $row;return $ret;/* 将一个二维数组按照指定字段的值分组* 用法:* endcode* param array $arr 数据源* param string $keyField 作为分组依据的键名* return array 分组后的结果*/stati

7、c function groupBy($arr, $keyField)$ret = array();foreach ($arr as $row)$key = $row$keyField;$ret$key = $row;return $ret;/* 将一个平面的二维数组按照指定的字段转换为树状结构* 如果要获得任意节点为根的子树,可以使用 $refs 参数:* code php by * $refs = null;* $tree = ArrayHelper:tree($rows, id, parent, nodes, $refs);* / 输出 id 为 3 的节点及其所有子节点* $id =

8、3;* dump($refs$id);* endcode* param array $arr 数据源* param string $keyNodeId 节点 ID 字段名* param string $keyParentId 节点父 ID 字段名* param string $keyChildrens 保存子节点的字段名* param boolean $refs 是否在返回结果中包含节点引用* return array 树形结构的数组*/static function toTree($arr, $keyNodeId, $keyParentId = parent_id, $keyChildren

9、s = childrens, foreach ($arr as $offset = $row)$arr$offset$keyChildrens = array();$refs$row$keyNodeId =$tree = array();foreach ($arr as $offset = $row)$parentId = $row$keyParentId;if ($parentId)if (!isset($refs$parentId)$tree =continue;$parent =$parent$keyChildrens =else$tree =return $tree;/* 将树形数组展

10、开为平面的数组* 这个方法是 tree() 方法的逆向操作。* param array $tree 树形数组* param string $keyChildrens 包含子节点的键名* return array 展开后的数组*/static function treeToArray($tree, $keyChildrens = childrens)$ret = array();if (isset($tree$keyChildrens) unset($node$keyChildrens);$ret = $tree;else$ret = $tree;return $ret;/* 根据指定的键对数组

11、排序* endcode* param array $array 要排序的数组* param string $keyname 排序的键* param int $dir 排序方向* return array 排序后的数组*/static function sortByCol($array, $keyname, $dir = SORT_ASC)return self:sortByMultiCols($array, array($keyname = $dir);/* 将一个二维数组按照多个列进行排序,类似 SQL 语句中的 ORDER BY* 用法:* code php* $rows = ArrayH

12、elper:sortByMultiCols($rows, array(* parent = SORT_ASC,* name = SORT_DESC,* );* endcode* param array $rowset 要排序的数组* param array $args 排序的键* return array 排序后的数组*/static function sortByMultiCols($rowset, $args)$sortArray = array();$sortRule = ;foreach ($args as $sortField = $sortDir)foreach ($rowset as $offset = $row)$sortArray$sortField$offset = $row$sortField;$sortRule .= $sortArray . $sortField . , . $sortDir . , ;if (empty($sortArray) | empty($sortRule) return $rowset;eval(array_multisort( . $sortRule . $rowset););return $rowset;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号