Note: PHP
PHPArray
Validator
这是一个PHP数组操作中间件,对 PHP 数组的常用操作进行封装 目前包括以下方法:
-
pf_del_val() 删除数组中的某个值
-
pf_key_exists() 判断数组中是否有这个键
-
get() 根据键名获取数组中的某个值,支持点语法
-
pf_arr_sort() 数组冒泡排序
-
pf_tree() 二级数组树结构化(不递归)
-
pf_get_tree() 多级数组结构化(不递归)
-
pf_array_unique() 多维数组去重
-
array_depth() 检测数组的维度
-
pf_encode() 数据格式转换 支持 数组转 'json','xml','csv','serialize'
-
pf_array_flatten() 将多维折叠数组变为一维
-
pf_is_list() 判断PHP数组是否索引数组
-
pf_array_rand_by_weight() 根据权重获取随机区间返回ID
-
pf_rand_val() 随机获取数组中的元素
-
pf_rand_weighted() 按权重 随机返回数组的值
-
pf_array_shuffle() 随机打乱数组(支持多维数组)
-
pf_array_insert() 在数组中的给定位置插入元素
-
pf_array_diff_both() 返回两个数组中不同的元素
-
pf_getCloud() 返回数组的标签云
-
pf_array_group_by() 按指定的键对数组依次分组
-
pf_array_null() 把数组中的null转换成空字符串
-
pf_count_element() 统计数组中元素出现的次数
-
pf_map() 重组数组
-
pf_exists() 判断数组中某个键有木有值
-
pf_save() 通过字符串表示将元素保存到数组中
-
pf_arr_group_by() 按指定值给数组分组
安装
通过 Composer 安装:
php composer.phar require nancheng/pfinal-array
使用
require './vendor/autoload.php';
use pf\arr\PFarr;
PFarr::pf_array_unique($arr);
PFarr::pf_array_col
例子
多维数组去重
$arr = [1,54,'a',45,12,'c',1,1,12,[1,1,'a',['a','b','a']]];
$arr = PFarr::pf_array_unique($arr);
echo '<pre>';
print_r($arr);
// 结果
Array
(
[0] => 1
[1] => 54
[2] => a
[3] => 45
[4] => 12
[5] => c
[9] => Array
(
[0] => 1
[2] => a
[3] => Array
(
[0] => a
[1] => b
)
)
)
获取指定列的数据
$result = PFarr::pf_array_col($records, 'first_name', 'id');
print_r($result);
按指定的键对数组依次分组
$records = [
[
'city' => '上海',
'age' => 18,
'name' => '马二'
],
[
'city' => '上海',
'age' => 20,
'name' => '翠花'
]
];
//按照 city 分组
$arr = PFarr::pf_array_group_by($records,'city');
//按照 city 分组 完成 之后 再按照 age 分组
$arr1 = PFarr::pf_array_group_by($records,'city','age');
组词算法
<?php
//组词算法
$arr=array('裤子','牛仔','低腰','加肥');
$count=count($arr);
for($i=1;$i<=$count;$i++){
$temp[$i]=PFarr::pf_diy_words($arr,$i);
}
PFarr::dd($temp);
统计数组元素在数组中出现的次数
<?php
$arr_one = ['a','b','c','d'];
$arr_two = ['a','b','a','c','b','d'];
PFarr::dd(PFarr::pf_count_element($arr_one));
/*
返回
Array
(
[a] => 1
[b] => 1
[c] => 1
[d] => 1
)
*/
PFarr::dd(PFarr::pf_count_element($arr_two));
/*
返回
Array
(
[a] => 2
[b] => 2
[c] => 1
[d] => 1
)
*/
从多维数组或对象数组构建一个映射(键-值对)。
<?php
$array = [
['id' => '123', 'name' => 'aaa', 'class' => 'x'],
['id' => '124', 'name' => 'bbb', 'class' => 'x'],
['id' => '345', 'name' => 'ccc', 'class' => 'y'],
];
PFarr::dd(PFarr::pf_map($array,'id','name'));
/*
返回:
Array
(
[123] => aaa
[124] => bbb
[345] => ccc
)
*/
PFarr::dd(PFarr::pf_map($array,'id','name','class'));
/*
返回
Array
(
[x] => Array
(
[123] => aaa
[124] => bbb
)
[y] => Array
(
[345] => ccc
)
)
*/
查看更多例子:更多
其他
继续完善