-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy patharray.php
109 lines (92 loc) · 2.28 KB
/
array.php
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
<?php
namespace {
if(!function_exists('array_delete')){
/**
* Deletes entry from array and return its value
*
* @param array $data
* @param string $key
* @return mixed
*/
function array_delete(array &$data, $key){
if(array_key_exists($key, $data)){
$value = $data[$key];
unset($data[$key]);
return $value;
}
}
}
if(!function_exists('array_get')){
/**
* Lookup entry in array and return value, returns false if not found
*
* @param array $data
* @param string $key
* @return mixed
*/
function array_get(array $data, $key){
if(array_key_exists($key, $data)){
return $data[$key];
}
return false;
}
}
if(!function_exists('array_flatten')){
/**
* Make multidimensional array flat
*
* @param array $array
* @return array
*/
function array_flatten(array $array){
$index = 0;
$count = count($array);
while($index < $count){
if(is_array($array[$index])){
array_splice($array, $index, 1, $array[$index]);
}else{
++$index;
}
$count = count($array);
}
return $array;
}
}
if(!function_exists('array_pick')){
/**
* Return array with only the keys in $keys
*
* @param array $array The source
* @param mixed $keys Keys of $array to return
* @return array
*/
function array_pick(array $array, $keys){
if(func_num_args() > 2){
$arguments = func_get_args();
$keys = array_slice($arguments, 1);
}elseif(!is_array($keys)){
$keys = array($keys);
}
return array_intersect_key($array, array_flip($keys));
}
}
if(!function_exists('array_reject')){
/**
* Return array without the keys in $keys.
* This is the inverse of array_pick
*
* @param array $array The source
* @param mixed $keys Keys of $array to exclude
* @return array
*/
function array_reject(array $array, $keys){
if(func_num_args() > 2){
$arguments = func_get_args();
$keys = array_slice($arguments, 1);
}elseif(!is_array($keys)){
$keys = array($keys);
}
return array_diff_key($array, array_flip($keys));
}
}
}