26 public function clear()
37 public function get($key)
39 return isset($this->array[$key]) ? $this->array[$key] :
null;
62 public function next()
64 return next($this->array);
74 public function prev()
76 return prev($this->array);
86 public function set($key, $element)
88 $this->array[$key] = $element;
97 public function setArray(array $array)
108 public function append($element)
110 $this->array[] = $element;
123 public function add($key, $element)
126 if (!array_key_exists($key, $this->array)) {
127 $this->array[$key] = $element;
128 } elseif (is_array($this->array[$key])) {
129 $this->array[$key][] = $element;
131 $this->array[$key] = [$this->array[$key], $element];
143 public function remove($key)
145 unset($this->array[$key]);
155 public function hasKey($key)
157 return array_key_exists($key, $this->array);
170 $result = array_search($value, $this->array,
true);
171 return ($result !==
false);
180 public function replace(array $data)
182 $this->array = $data;
191 return new \ArrayIterator($this->array);
203 return isset($this->array[$offset]) ? $this->array[$offset] :
null;
212 public function offsetSet($offset, $value)
214 $this->array[$offset] = $value;
226 return isset($this->array[$offset]);
236 unset($this->array[$offset]);
250 public function count()
252 return count($this->array);
270 public function filter(\Closure $closure)
272 return new ArrayList(array_filter($this->array, $closure));
282 return new ArrayList(
283 array_filter($this->array,
function($key) use ($keys) {
284 return array_search($key, $keys) !==
false;
285 }, ARRAY_FILTER_USE_KEY)
294 public function map(\closure $mapFunction)
296 return new ArrayList(array_map($mapFunction, $this->array));
305 $flattenedArray = [];
306 array_walk_recursive($this->array,
function($item) use(&$flattenedArray) {
307 $flattenedArray[] = $item;
309 return new ArrayList($flattenedArray);