+
+ /**
+ * Return the values from a single field in the collection
+ *
+ * @param string $column
+ * @param int|null $index_key
+ * @return array
+ * @see array_column()
+ */
+ public function column($column, $index_key = null)
+ {
+ return array_column($this->getArrayCopy(), $column, $index_key);
+ }
+
+ /**
+ * Apply a callback function on all elements in the collection and returns a new collection with the updated elements
+ *
+ * @param callable $callback
+ * @return BaseCollection
+ * @see array_map()
+ */
+ public function map(callable $callback)
+ {
+ return new static(array_map($callback, $this->getArrayCopy()), $this->getTotalCount());
+ }
+
+ /**
+ * Filters the collection based on a callback that returns a boolean whether the current item should be kept.
+ *
+ * @param callable|null $callback
+ * @param int $flag
+ * @return BaseCollection
+ * @see array_filter()
+ */
+ public function filter(callable $callback = null, int $flag = 0)
+ {
+ return new static(array_filter($this->getArrayCopy(), $callback, $flag));
+ }
+
+ /**
+ * Reverse the orders of the elements in the collection
+ *
+ * @return $this
+ */
+ public function reverse(): BaseCollection
+ {
+ return new static(array_reverse($this->getArrayCopy()), $this->getTotalCount());
+ }