forked from helei112g/payment
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArrayUtil.php
More file actions
131 lines (115 loc) · 3.22 KB
/
ArrayUtil.php
File metadata and controls
131 lines (115 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
namespace Payment\Utils;
/**
* @author: helei
* @createTime: 2016-06-07 21:01
* @description: 常用的数组处理工具
* @link https://www.gitbook.com/book/helei112g1/payment-sdk/details
* @link https://helei112g.github.io/
*/
class ArrayUtil
{
/**
* 移除空值的key
* @param $para
* @return array
* @author helei
*/
public static function paraFilter($para)
{
$paraFilter = [];
while (list($key, $val) = each($para)) {
if ($val === '' || $val === null) {
continue;
} else {
if (! is_array($para[$key])) {
$para[$key] = is_bool($para[$key]) ? $para[$key] : trim($para[$key]);
}
$paraFilter[$key] = $para[$key];
}
}
return $paraFilter;
}
/**
* 删除一位数组中,指定的key与对应的值
* @param array $inputs 要操作的数组
* @param array|string $keys 需要删除的key的数组,或者用(,)链接的字符串
* @return array
*/
public static function removeKeys(array $inputs, $keys)
{
if (! is_array($keys)) {// 如果不是数组,需要进行转换
$keys = explode(',', $keys);
}
if (empty($keys) || ! is_array($keys)) {
return $inputs;
}
$flag = true;
foreach ($keys as $key) {
if (array_key_exists($key, $inputs)) {
if (is_int($key)) {
$flag = false;
}
unset($inputs[$key]);
}
}
if (! $flag) {
$inputs = array_values($inputs);
}
return $inputs;
}
/**
* 对输入的数组进行字典排序
* @param array $param 需要排序的数组
* @return array
* @author helei
*/
public static function arraySort(array $param)
{
ksort($param);
reset($param);
return $param;
}
/**
* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
* @param array $para 需要拼接的数组
* @return string
* @throws \Exception
*/
public static function createLinkstring($para)
{
if (! is_array($para)) {
throw new \Exception('必须传入数组参数');
}
reset($para);
$arg = '';
while (list($key, $val) = each($para)) {
if (is_array($val)) {
continue;
}
$arg.=$key.'='.urldecode($val).'&';
}
//去掉最后一个&字符
$arg && $arg = substr($arg, 0, -1);
//如果存在转义字符,那么去掉转义
if (get_magic_quotes_gpc()) {
$arg = stripslashes($arg);
}
return $arg;
}
/**
* 获取一个数组中某个key的值,如果key为不存在,返回默认值
* @param array $arr
* @param $key
* @param string $default
*
* @return string
*/
public static function get(array $arr, $key, $default = '')
{
if (isset($arr[$key]) && ! empty($arr[$key])) {
return $arr[$key];
}
return $default;
}
}