| @@ 223-256 (lines=34) @@ | ||
| 220 | } |
|
| 221 | } |
|
| 222 | ||
| 223 | if ( ! function_exists('array_forget')) |
|
| 224 | { |
|
| 225 | /** |
|
| 226 | * Remove one or many array items from a given array using "dot" notation. |
|
| 227 | * |
|
| 228 | * @param array $array |
|
| 229 | * @param array|string $keys |
|
| 230 | * @return void |
|
| 231 | */ |
|
| 232 | function array_forget(&$array, $keys) |
|
| 233 | { |
|
| 234 | $original =& $array; |
|
| 235 | ||
| 236 | foreach ((array) $keys as $key) |
|
| 237 | { |
|
| 238 | $parts = explode('.', $key); |
|
| 239 | ||
| 240 | while (count($parts) > 1) |
|
| 241 | { |
|
| 242 | $part = array_shift($parts); |
|
| 243 | ||
| 244 | if (isset($array[$part]) && is_array($array[$part])) |
|
| 245 | { |
|
| 246 | $array =& $array[$part]; |
|
| 247 | } |
|
| 248 | } |
|
| 249 | ||
| 250 | unset($array[array_shift($parts)]); |
|
| 251 | ||
| 252 | // clean up after each pass |
|
| 253 | $array =& $original; |
|
| 254 | } |
|
| 255 | } |
|
| 256 | } |
|
| 257 | ||
| 258 | if ( ! function_exists('array_get')) |
|
| 259 | { |
|
| @@ 1066-1099 (lines=34) @@ | ||
| 1063 | } |
|
| 1064 | } |
|
| 1065 | ||
| 1066 | if ( ! function_exists('forget')) |
|
| 1067 | { |
|
| 1068 | /** |
|
| 1069 | * Remove one or many array items from a given array using "dot" notation. |
|
| 1070 | * |
|
| 1071 | * @param array $array |
|
| 1072 | * @param array|string $keys |
|
| 1073 | * @return void |
|
| 1074 | */ |
|
| 1075 | function forget(&$array, $keys) |
|
| 1076 | { |
|
| 1077 | $original =& $array; |
|
| 1078 | ||
| 1079 | foreach ((array) $keys as $key) |
|
| 1080 | { |
|
| 1081 | $parts = explode('.', $key); |
|
| 1082 | ||
| 1083 | while (count($parts) > 1) |
|
| 1084 | { |
|
| 1085 | $part = array_shift($parts); |
|
| 1086 | ||
| 1087 | if (isset($array[$part]) && is_array($array[$part])) |
|
| 1088 | { |
|
| 1089 | $array =& $array[$part]; |
|
| 1090 | } |
|
| 1091 | } |
|
| 1092 | ||
| 1093 | unset($array[array_shift($parts)]); |
|
| 1094 | ||
| 1095 | // clean up after each pass |
|
| 1096 | $array =& $original; |
|
| 1097 | } |
|
| 1098 | } |
|
| 1099 | } |
|