{"id":26101608,"url":"https://github.com/pfinalclub/pfinal-array","last_synced_at":"2025-04-12T15:51:36.125Z","repository":{"id":57023569,"uuid":"109216323","full_name":"pfinalclub/pfinal-array","owner":"pfinalclub","description":"👍PHP数组操作增强组件.主要是对数组等数据进行处理","archived":false,"fork":false,"pushed_at":"2020-05-26T09:58:28.000Z","size":92,"stargazers_count":51,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T14:12:29.552Z","etag":null,"topics":["pf-arr-sort","pfinal","php","php-array","php7","tree","weight"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pfinalclub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-02T04:05:23.000Z","updated_at":"2023-04-01T10:45:13.000Z","dependencies_parsed_at":"2022-08-23T13:50:22.243Z","dependency_job_id":null,"html_url":"https://github.com/pfinalclub/pfinal-array","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfinalclub%2Fpfinal-array","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfinalclub%2Fpfinal-array/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfinalclub%2Fpfinal-array/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfinalclub%2Fpfinal-array/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pfinalclub","download_url":"https://codeload.github.com/pfinalclub/pfinal-array/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248591975,"owners_count":21130158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pf-arr-sort","pfinal","php","php-array","php7","tree","weight"],"created_at":"2025-03-09T18:50:10.129Z","updated_at":"2025-04-12T15:51:36.105Z","avatar_url":"https://github.com/pfinalclub.png","language":"PHP","readme":"# pfinal-array\r\n\r\n[![](https://img.shields.io/github/issues/pfinalclub/pfinal-array?style=flat-square)](https://github.com/pfinalclub/pfinal-array)\r\n[![](https://img.shields.io/github/forks/pfinalclub/pfinal-array?style=flat-square)](https://github.com/pfinalclub/pfinal-array)\r\n[![](https://img.shields.io/github/stars/pfinalclub/pfinal-array?style=flat-square)](https://github.com/pfinalclub/pfinal-array)\r\n[![](https://img.shields.io/github/license/pfinalclub/pfinal-array?style=flat-square)](https://github.com/pfinalclub/pfinal-array)\r\n\r\n**Note:** ```PHP``` ```PHPArray``` ```Validator```\r\n\r\n这是一个PHP数组操作增强组件,对 PHP 数组的常用操作进行封装\r\n\r\n目前包括以下方法：\r\n\r\n|  函数名   | 函数描述 |\r\n|  ----  | ---- |\r\n| pf_del_val() |删除数组中的某个值|\r\n| pf_key_exists() |   判断数组中是否有这个键|\r\n| pf_get() |         根据键名获取数组中的某个值,支持点语法|\r\n| pf_set() |         设置数组元素值支持点语法|\r\n| pf_arr_sort() |   数组排序|\r\n| pf_tree() |        二级数组树结构化(不递归)|\r\n| pf_get_tree() |     多级数组结构化(不递归)|\r\n| pf_array_unique() |   多维数组去重 |\r\n| pf_array_depth() |       检测数组的维度|\r\n| pf_encode() |         数据格式转换支持 数组转 'json','xml','csv','serialize'|\r\n| pf_array_flatten() |        将多维折叠数组变为一维|\r\n| pf_is_list() |              判断PHP数组是否索引数组|\r\n| pf_array_rand_by_weight() | 根据权重获取随机区间返回ID|\r\n| pf_rand_val() |      随机获取数组中的元素|\r\n| pf_rand_weighted() | 按权重 随机返回数组的值|\r\n| pf_array_shuffle() | 随机打乱数组(支持多维数组)|\r\n| pf_array_insert() |  在数组中的给定位置插入元素|\r\n| pf_array_diff_both() |    返回两个数组中不同的元素|\r\n| pf_array_group_by() | 按指定的键对数组依次分组|\r\n| pf_array_null() |    把数组中的null转换成空字符串|\r\n| pf_count_element() |   统计数组中元素出现的次数|\r\n| pf_map() |   重组数组|\r\n| pf_exists() |  判断数组中某个键有木有值|\r\n| pf_arr_group_by() |  按指定值给数组分组|\r\n| pf_arr_sort_by_key() |  按指定键给数组排序|\r\n| pf_arr_remove_empty() |  递归过滤多维数组中 空白字符，负值，false，null|\r\n| pf_date_indexed() | 生成一个日期数组|\r\n| pf_date_assoc() | 产生一个关联数组|\r\n| pf_array_where() | 使用给定闭包对数组进行过滤|\r\n| pf_array_first() | 获取数组的第一个元素|\r\n| pf_array_last() |  获取数组的最后一个元素|\r\n\r\n## 安装\r\n\r\n通过 Composer 安装：\r\n\r\n```composer\r\n  composer require nancheng/pfinal-array\r\n```\r\n---\r\n\r\n## 使用\r\n\r\n```php\r\n\r\n    require './vendor/autoload.php';\r\n    use pf\\arr\\PFarr;\r\n    // 调用方法\r\n```\r\n\r\n## 例子\r\n\r\n\r\n\r\n*多维数组去重*\r\n\r\n```php\r\n    $arr = [1,54,'a',45,12,'c',1,1,12,[1,1,'a',['a','b','a']]];\r\n    $arr = PFarr::pf_array_unique($arr);\r\n    echo '\u003cpre\u003e';\r\n    print_r($arr);\r\n        \r\n    \r\n    // 结果\r\n    Array\r\n    (\r\n        [0] =\u003e 1\r\n        [1] =\u003e 54\r\n        [2] =\u003e a\r\n        [3] =\u003e 45\r\n        [4] =\u003e 12\r\n        [5] =\u003e c\r\n        [9] =\u003e Array\r\n            (\r\n                [0] =\u003e 1\r\n                [2] =\u003e a\r\n                [3] =\u003e Array\r\n                    (\r\n                        [0] =\u003e a\r\n                        [1] =\u003e b\r\n                    )\r\n    \r\n            )\r\n    \r\n    )\r\n```\r\n\r\n*获取指定列的数据*\r\n\r\n```php\r\n$result = PFarr::pf_array_col($records, 'first_name', 'id');\r\n    print_r($result);\r\n```\r\n\r\n*按指定的键对数组依次分组*\r\n\r\n```php\r\n$records = [\r\n    [\r\n        'city'  =\u003e '上海',\r\n        'age'   =\u003e 18,\r\n        'name'  =\u003e '马二'\r\n    ],\r\n    [\r\n        'city'  =\u003e '上海',\r\n        'age'   =\u003e 20,\r\n        'name'  =\u003e '翠花'\r\n    ]\r\n];\r\n\r\n//按照 city 分组 \r\n$arr = PFarr::pf_array_group_by($records,'city');\r\n\r\n//按照 city 分组 完成 之后 再按照  age 分组\r\n   \r\n$arr1 = PFarr::pf_array_group_by($records,'city','age');\r\n\r\n```\r\n*组词算法*\r\n```php\r\n\u003c?php\r\n//组词算法  \r\n$arr=array('裤子','牛仔','低腰','加肥');  \r\n$count=count($arr);  \r\nfor($i=1;$i\u003c=$count;$i++){  \r\n    $temp[$i]=PFarr::pf_diy_words($arr,$i);  \r\n}  \r\nPFarr::dd($temp);\r\n  \r\n\r\n```\r\n\r\n*统计数组元素在数组中出现的次数*\r\n\r\n```php\r\n\u003c?php\r\n$arr_one = ['a','b','c','d'];\r\n$arr_two = ['a','b','a','c','b','d'];\r\n\r\nPFarr::dd(PFarr::pf_count_element($arr_one));\r\n\r\n/*\r\n  返回\r\n  Array\r\n   (\r\n       [a] =\u003e 1\r\n       [b] =\u003e 1\r\n       [c] =\u003e 1\r\n       [d] =\u003e 1\r\n   )\r\n */\r\n\r\nPFarr::dd(PFarr::pf_count_element($arr_two));\r\n /*\r\n   返回\r\n Array\r\n (\r\n     [a] =\u003e 2\r\n     [b] =\u003e 2\r\n     [c] =\u003e 1\r\n     [d] =\u003e 1\r\n )\r\n  \r\n */\r\n\r\n\r\n```\r\n*从多维数组或对象数组构建一个映射(键-值对)。*\r\n\r\n```php\r\n\u003c?php\r\n$array = [\r\n    ['id' =\u003e '123', 'name' =\u003e 'aaa', 'class' =\u003e 'x'],\r\n    ['id' =\u003e '124', 'name' =\u003e 'bbb', 'class' =\u003e 'x'],\r\n    ['id' =\u003e '345', 'name' =\u003e 'ccc', 'class' =\u003e 'y'],\r\n];\r\n\r\nPFarr::dd(PFarr::pf_map($array,'id','name'));\r\n\r\n/*\r\n  返回:\r\n Array\r\n (\r\n     [123] =\u003e aaa\r\n     [124] =\u003e bbb\r\n     [345] =\u003e ccc\r\n )\r\n */\r\n\r\n\r\nPFarr::dd(PFarr::pf_map($array,'id','name','class'));\r\n/*\r\n返回\r\nArray\r\n(\r\n    [x] =\u003e Array\r\n        (\r\n            [123] =\u003e aaa\r\n            [124] =\u003e bbb\r\n        )\r\n\r\n    [y] =\u003e Array\r\n        (\r\n            [345] =\u003e ccc\r\n        )\r\n\r\n)\r\n*/\r\n\r\n```\r\n查看更多例子:[更多](./example/README.md)\r\n\r\n### 其他\r\n\r\n继续完善\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfinalclub%2Fpfinal-array","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpfinalclub%2Fpfinal-array","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfinalclub%2Fpfinal-array/lists"}