{"id":14985402,"url":"https://github.com/voku/arrayy","last_synced_at":"2025-05-14T05:00:31.441Z","repository":{"id":3626633,"uuid":"50345723","full_name":"voku/Arrayy","owner":"voku","description":"🗃 Array manipulation library for PHP, called Arrayy!","archived":false,"fork":false,"pushed_at":"2025-04-15T10:54:11.000Z","size":3172,"stargazers_count":488,"open_issues_count":11,"forks_count":34,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-10T14:44:39.921Z","etag":null,"topics":["array","array-methods","arrayaccess","closure","collection","composer","dot-notation","hacktoberfest","immutable","multi-array","multidimensional-arrays","php","php7"],"latest_commit_sha":null,"homepage":"https://voku.gitbooks.io/arrayy/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voku.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["voku"],"patreon":"voku","open_collective":"arrayy","tidelift":"packagist/voku/arrayy","custom":"https://www.paypal.me/moelleken"}},"created_at":"2016-01-25T11:15:40.000Z","updated_at":"2025-03-02T01:08:31.000Z","dependencies_parsed_at":"2024-01-13T01:22:53.824Z","dependency_job_id":"9506cabd-4342-4513-80c5-3cf13747fef0","html_url":"https://github.com/voku/Arrayy","commit_stats":{"total_commits":569,"total_committers":20,"mean_commits":28.45,"dds":0.5623901581722319,"last_synced_commit":"e88173fbae8211400df7f0a304b3f6c3169065f1"},"previous_names":[],"tags_count":159,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voku%2FArrayy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voku%2FArrayy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voku%2FArrayy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voku%2FArrayy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voku","download_url":"https://codeload.github.com/voku/Arrayy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076381,"owners_count":22010609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["array","array-methods","arrayaccess","closure","collection","composer","dot-notation","hacktoberfest","immutable","multi-array","multidimensional-arrays","php","php7"],"created_at":"2024-09-24T14:10:54.283Z","updated_at":"2025-05-14T05:00:31.376Z","avatar_url":"https://github.com/voku.png","language":"PHP","readme":"[//]: # (AUTO-GENERATED BY \"PHP README Helper\": base file -\u003e docs/base.md)\n[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)\n\n[![Build Status](https://github.com/voku/Arrayy/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/voku/Arrayy/actions)\n[![codecov.io](https://codecov.io/github/voku/Arrayy/coverage.svg?branch=master)](https://codecov.io/github/voku/Arrayy?branch=master)\n[![Codacy Badge](https://api.codacy.com/project/badge/grade/b8c4c88a063545d787e2a4f1f5dfdf23)](https://www.codacy.com/app/voku/Arrayy)\n[![Latest Stable Version](https://poser.pugx.org/voku/arrayy/v/stable)](https://packagist.org/packages/voku/arrayy) \n[![Total Downloads](https://poser.pugx.org/voku/arrayy/downloads)](https://packagist.org/packages/voku/arrayy) \n[![License](https://poser.pugx.org/voku/arrayy/license)](https://packagist.org/packages/voku/arrayy)\n[![Donate to this project using Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.me/moelleken)\n[![Donate to this project using Patreon](https://img.shields.io/badge/patreon-donate-yellow.svg)](https://www.patreon.com/voku)\n\n# 🗃 Arrayy\n\nA PHP array manipulation library. Compatible with PHP 7+ \u0026 PHP 8+\n\n\n``` php\n\\Arrayy\\Type\\StringCollection::create(['Array', 'Array'])-\u003eunique()-\u003eappend('y')-\u003eimplode() // Arrayy\n```\n\n![Ed8ypbzWAAIinwv-1](https://user-images.githubusercontent.com/264695/183588620-3f1c2c32-e4aa-4069-9d12-23265689ba0b.jpeg)\n\n* [Installation](#installation-via-composer-require)\n* [Multidimensional ArrayAccess](#multidimensional-arrayaccess)\n* [PhpDoc @property checking](#phpdoc-property-checking)\n* [OO and Chaining](#oo-and-chaining)\n* [Collections](#collections)\n    * [Pre-Defined Typified Collections](#pre-defined-typified-collections)\n    * [Convert JSON-Data into Collections](#convert-json-data-into-objects-collection)\n* [Class methods](#class-methods)\n    * [use a \"default object\"](#use-a-default-object)\n    * [create](#createarray-array--arrayy-immutable)\n    * [createByReference](#createbyreferencearray-array--arrayy-mutable)\n    * [createFromJson](#createfromjsonstring-json--arrayy-immutable)\n    * [createFromJsonMapper](#createfromjsonmapperstring-json--arrayy-immutable)\n    * [createFromObject](#createfromobjectarrayaccess-object--arrayy-immutable)\n    * [createFromObjectVars](#createfromobjectvarsobject-object--arrayy-immutable)\n    * [createWithRange](#createwithrange--arrayy-immutable)\n    * [createFromGeneratorImmutable](#createfromgeneratorimmutable--arrayy-immutable)\n    * [createFromGeneratorFunction](#createfromgeneratorfunction--arrayy-immutable)\n    * [createFromString](#createfromstringstring-str--arrayy-immutable)\n* [Instance methods](#instance-methods)\n    * [\"set an array value\"](#set-an-array-value)\n    * [\"set an array value via dot-notation\"](#setmixed-key-mixed-value--arrayy-immutable)\n    * [\"get an array value\"](#get-an-array-value)\n    * [\"get an array value via dot-notation\"](#getstring-key-null-default-null-array--mixed)\n    * [\"get the array\"](#get-the-array)\n    * [\"delete an array value\"](#delete-an-array-value)\n    * [\"check if an array value is-set\"](#check-if-an-array-value-is-set)\n    * [\"simple loop with an Arrayy-object\"](#simple-loop-with-an-arrayy-object)\n    * [overview](#arrayy-methods)\n* [Tests](#tests)\n* [License](#license)\n\n## Installation via \"composer require\"\n```shell\ncomposer require voku/arrayy\n```\n\n## Multidimensional ArrayAccess\n\nYou can access / change the array via Object, Array or with \"Arrayy\"-syntax.\n\n### Access via \"Arrayy\"-syntax: (dot-notation)\n\n```php\n$arrayy = new A(['Lars' =\u003e ['lastname' =\u003e 'Moelleken']]);\n\n$arrayy-\u003eget('Lars'); // ['lastname' =\u003e 'Moelleken']\n$arrayy-\u003eget('Lars.lastname'); // 'Moelleken'\n```\n\n### Access via \"array\"-syntax:\n\n```php\n$arrayy = new A(['Lars' =\u003e ['lastname' =\u003e 'Moelleken']]);\n\n$arrayy['Lars'];             // ['lastname' =\u003e 'Moelleken']\n$arrayy['Lars']['lastname']; // 'Moelleken'\n```\n\n### Access via \"object\"-syntax:\n\n```php\n$arrayy = new A(['Lars' =\u003e ['lastname' =\u003e 'Moelleken']]);\n\n$arrayy-\u003eLars; // Arrayy['lastname' =\u003e 'Moelleken']\n$arrayy-\u003eLars-\u003elastname; // 'Moelleken'\n```\n\n### Set values via \"Arrayy\"-syntax: (dot-notation)\n\n```php\n$arrayy = new A(['Lars' =\u003e ['lastname' =\u003e 'Mueller']]);\n\n$arrayy-\u003eset('Lars.lastname', 'Moelleken');\n$arrayy-\u003eget('Lars.lastname'); // 'Moelleken'\n```\n\n### Set values via \"array\"-syntax:\n\n```php\n$arrayy = new A(['Lars' =\u003e ['lastname' =\u003e 'Moelleken']]);\n\n$arrayy['Lars'] = array('lastname' =\u003e 'Müller');\n$arrayy['Lars']['lastname']; // 'Müller'\n```\n\n### Set values via \"object\"-syntax:\n\n```php\n$arrayy = new A(['Lars' =\u003e ['lastname' =\u003e 'Moelleken']]);\n\n$arrayy-\u003eLars = array('lastname' =\u003e 'Müller');\n$arrayy-\u003eLars-\u003elastname; // 'Müller'\n```\n\n## PhpDoc @property checking\n\nThe library offers a type checking for @property phpdoc-class-comments, as seen below:\n\n```php\n/**\n * @property int        $id\n * @property int|string $firstName\n * @property string     $lastName\n * @property null|City  $city\n *\n * @extends  \\Arrayy\\Arrayy\u003carray-key,mixed\u003e\n */\nclass User extends \\Arrayy\\Arrayy\n{\n  protected $checkPropertyTypes = true;\n\n  protected $checkPropertiesMismatchInConstructor = true;\n}\n\n/**\n * @property string|null $plz\n * @property string      $name\n * @property string[]    $infos\n *\n * @extends  \\Arrayy\\Arrayy\u003carray-key,mixed\u003e\n */\nclass City extends \\Arrayy\\Arrayy\n{\n    protected $checkPropertyTypes = true;\n\n    protected $checkPropertiesMismatchInConstructor = true;\n}\n\n$cityMeta = City::meta();\n$city = new City(\n    [\n        $cityMeta-\u003eplz   =\u003e null,\n        $cityMeta-\u003ename  =\u003e 'Düsseldorf',\n        $cityMeta-\u003einfos =\u003e ['lall'],\n    ]\n);\n\n$userMeta = User::meta();\n$user = new User(\n    [\n        $userMeta-\u003eid        =\u003e 1,\n        $userMeta-\u003efirstName =\u003e 'Lars',\n        $userMeta-\u003elastName  =\u003e 'Moelleken',\n        $userMeta-\u003ecity      =\u003e $city,\n    ]\n);\n\nvar_dump($user['lastName']); // 'Moelleken'\nvar_dump($user[$userMeta-\u003elastName]); // 'Moelleken'\nvar_dump($user-\u003elastName); // Moelleken\n\nvar_dump($user['city.name']); // 'Düsseldorf'\nvar_dump($user[$userMeta-\u003ecity][$cityMeta-\u003ename]); // 'Düsseldorf'\nvar_dump($user-\u003ecity-\u003ename); // Düsseldorf\n```\n\n- \"checkPropertyTypes\": activate the type checking for all defined @property in the class-phpdoc\n- \"checkPropertiesMismatchInConstructor\": activate the property mismatch check, so you can only add an \n                                          array with all needed properties (or an empty array) into the constructor\n\n## OO and Chaining\n\nThe library also offers OO method chaining, as seen below:\n\nsimple example:\n```php\necho a(['fòô', 'bàř', 'bàř'])-\u003eunique()-\u003ereverse()-\u003eimplode(','); // 'bàř,fòô'\n```\n\ncomplex example:\n```php\n/**\n * @property int    $id\n * @property string $firstName\n * @property string $lastName\n *\n * @extends  \\Arrayy\\Arrayy\u003carray-key,mixed\u003e\n */\nclass User extends \\Arrayy\\Arrayy\n{\n  protected $checkPropertyTypes = true;\n\n  protected $checkPropertiesMismatchInConstructor = true;\n}\n\n/**\n * @template TKey of array-key\n * @extends  AbstractCollection\u003cTKey,User\u003e\n */\nclass UserCollection extends \\Arrayy\\Collection\\AbstractCollection\n{\n    /**\n     * The type (FQCN) associated with this collection.\n     *\n     * @return string\n     */\n    public function getType()\n    {\n        return User::class;\n    }\n}\n\n\n$m = User::meta();\n\n$data = static function () use ($m) {\n    yield new User([$m-\u003eid =\u003e 40, $m-\u003efirstName =\u003e 'Foo', $m-\u003elastName =\u003e 'Moelleken']);\n    yield new User([$m-\u003eid =\u003e 30, $m-\u003efirstName =\u003e 'Sven', $m-\u003elastName =\u003e 'Moelleken']);\n    yield new User([$m-\u003eid =\u003e 20, $m-\u003efirstName =\u003e 'Lars', $m-\u003elastName =\u003e 'Moelleken']);\n    yield new User([$m-\u003eid =\u003e 10, $m-\u003efirstName =\u003e 'Lea', $m-\u003elastName =\u003e 'Moelleken']);\n};\n\n$users = UserCollection::createFromGeneratorFunction($data);\n$names = $users\n    -\u003efilter(static function (User $user): bool {\n        return $user-\u003eid \u003c= 30;\n    })\n    -\u003ecustomSortValuesImmutable(static function (User $a, User $b): int {\n        return $a-\u003efirstName \u003c=\u003e $b-\u003efirstName;\n    })\n    -\u003emap(static function (User $user): string {\n        return $user-\u003efirstName;\n    })\n    -\u003eimplode(';');\n\nstatic::assertSame('Lars;Lea;Sven', $names);\n```\n\n## Implemented Interfaces\n\n`Arrayy\\Arrayy` implements the `IteratorAggregate` interface, meaning that\n`foreach` can be used with an instance of the class:\n\n``` php\n$arrayy = a(['fòôbàř', 'foo']);\nforeach ($arrayy as $value) {\n    echo $value;\n}\n// 'fòôbàř'\n// 'foo'\n```\n\nIt implements the `Countable` interface, enabling the use of `count()` to\nretrieve the number of elements in the array:\n\n``` php\n$arrayy = a(['fòô', 'foo']);\ncount($arrayy);  // 2\n```\n\n## PHP 5.6 Creation\n\nAs of PHP 5.6, [`use function`](https://wiki.php.net/rfc/use_function) is\navailable for importing functions. Arrayy exposes a namespaced function,\n`Arrayy\\create`, which emits the same behaviour as `Arrayy\\Arrayy::create()`.\nIf running PHP 5.6, or another runtime that supports the `use function` syntax,\nyou can take advantage of an even simpler API as seen below:\n\n``` php\nuse function Arrayy\\create as a;\n\n// Instead of: A::create(['fòô', 'bàř'])-\u003ereverse()-\u003eimplode();\na(['fòô', 'bàř'])-\u003ereverse()-\u003eimplode(','); // 'bàř,fòô'\n```\n\n## Collections\n\nIf you need to group objects together, it's not a good idea \nto use a simple array or Arrayy object. For these cases you can use the ```AbstractCollection```\nclass.\n\nIt will throw a ```InvalidArgumentException``` if you try to add a non valid object into the collection.\n\ne.g.: \"YOURCollection.php\" (see example ```/tests/CollectionTest.php``` on github)\n```php\nuse Arrayy\\Collection\\AbstractCollection;\n\n/**\n * @extends  AbstractCollection\u003carray-key,YOURInterface\u003e\n */\nclass YOURCollection extends AbstractCollection\n{\n    /**\n     * The type (FQCN) associated with this collection.\n     *\n     * @return string\n     */\n    public function getType(): string\n    {\n        return YOURInterface::class;\n    }\n}\n\n$YOURobject1 = new YOURClass();\n$YOURobject2 = new YOURClass();\n\n$YOURcollection = new YOURCollection($YOURobject1);\n$YOURcollection-\u003eadd($YOURobject2); // add one more object\n\n// Or, you can use an array of objects.\n//\n// $YOURcollection = new YOURCollection([$YOURobject1, $YOURobject2]);\n\n// Or, if you don't want to create new classes ... \n// ... and you don't need typehints and autocompletion via classes.\n//\n// $YOURcollection = \\Arrayy\\Collection::construct(YOURInterface::class, [$YOURobject1]);\n// $YOURcollection-\u003eadd($YOURobject2); // add one more object\n\n// Or, if you don't like classes at all. ;-)\n//\n// $YOURcollection = \\Arrayy\\collection(YOURInterface::class, [$YOURobject1]);\n// $YOURcollection-\u003eadd($YOURobject2); // add one more object\n\nforeach ($YOURcollection as $YOURobject) {\n    if ($YOURobject instanceof YOURInterface) {\n        // Do something with $YOURobject\n    }\n}\n``` \n\nYou can also use \"dot-notation\" to get data from your collections e.g.\n```$YOURcollection-\u003eget('3123.foo.bar');```\n\n## Pre-Defined Typified Collections\n\n### simple example\n\nThis will throw a \"TypeError\"-Exception. \n\n```php\nuse Arrayy\\Type\\StringCollection;\n\n$collection = new StringCollection(['A', 'B', 'C', 1]);\n```\n\n### complex example\n\nThis will NOT throw a \"TypeError\"-Exception. \n\n```php\nuse Arrayy\\Type\\IntCollection;\nuse Arrayy\\Type\\StringCollection;\nuse Arrayy\\Type\\InstancesCollection;\nuse Arrayy\\Type\\TypeInterface;\n\n$collection = InstancesCollection::construct(\n    TypeInterface::class,\n    [new StringCollection(['A', 'B', 'C']), new IntCollection([1])]\n);\n\n$collection-\u003etoArray(true); // [['A', 'B', 'C'], [1]]\n```\n\n## Convert JSON-Data into Objects (Collection)\n\n```php\n\nnamespace Arrayy\\tests\\Collection;\n\nuse Arrayy\\Collection\\AbstractCollection;\n\n/**\n * @extends  AbstractCollection\u003carray-key,\\Arrayy\\tests\\UserData\u003e\n */\nclass UserDataCollection extends AbstractCollection\n{\n    /**\n     * The type (FQCN) associated with this collection.\n     *\n     * @return string\n     */\n    public function getType()\n    {\n        return \\Arrayy\\tests\\UserData::class;\n    }\n}\n\n$json = '[{\"id\":1,\"firstName\":\"Lars\",\"lastName\":\"Moelleken\",\"city\":{\"name\":\"Düsseldorf\",\"plz\":null,\"infos\":[\"lall\"]}}, {\"id\":1,\"firstName\":\"Sven\",\"lastName\":\"Moelleken\",\"city\":{\"name\":\"Köln\",\"plz\":null,\"infos\":[\"foo\"]}}]';\n$userDataCollection = UserDataCollection::createFromJsonMapper($json);\n\n/** @var \\Arrayy\\tests\\UserData[] $userDatas */\n$userDataCollection-\u003egetAll();\n\n$userData0 = $userDataCollection[0];\necho $userData0-\u003efirstName; // 'Lars'\n$userData0-\u003ecity; // CityData::class\necho $userData0-\u003ecity-\u003ename; // 'Düsseldorf'\n\n$userData1 = $userDataCollection[1];\necho $userData1-\u003efirstName; // 'Sven'\n$userData1-\u003ecity; // CityData::class\necho $userData1-\u003ecity-\u003ename; // 'Köln'\n```\n\n## Class methods\n\n##### use a \"default object\" \n\nCreates an Arrayy object.\n\n```php\n$arrayy = new Arrayy(array('fòô', 'bàř')); // Arrayy['fòô', 'bàř']\n```\n\n##### create(array $array) : Arrayy (Immutable)\n\nCreates an Arrayy object, via static \"create()\"-method\n\n```php\n$arrayy = A::create(array('fòô', 'bàř')); // Arrayy['fòô', 'bàř']\n```\n\n##### createByReference(array \u0026$array) : Arrayy (Mutable)\n\nWARNING: Creates an Arrayy object by reference.\n\n```php\n$array = array('fòô', 'bàř');\n$arrayy = A::createByReference($array); // Arrayy['fòô', 'bàř']\n```\n\n##### createFromJson(string $json) : Arrayy (Immutable)\n\nCreate an new Arrayy object via JSON.\n\n```php\n$str = '{\"firstName\":\"John\", \"lastName\":\"Doe\"}';\n$arrayy = A::createFromJson($str); // Arrayy['firstName' =\u003e 'John', 'lastName' =\u003e 'Doe']\n```\n\n##### createFromJsonMapper(string $json) : Arrayy (Immutable)\n\nCreate an new Arrayy object via JSON and fill sub-objects is possible.\n\n```php\n\u003c?php\n\nnamespace Arrayy\\tests;\n\n/**\n * @property int                         $id\n * @property int|string                  $firstName\n * @property string                      $lastName\n * @property \\Arrayy\\tests\\CityData|null $city\n *\n * @extends  \\Arrayy\\Arrayy\u003carray-key,mixed\u003e\n */\nclass UserData extends \\Arrayy\\Arrayy\n{\n    protected $checkPropertyTypes = true;\n\n    protected $checkForMissingPropertiesInConstructor = true;\n}\n\n/**\n * @property string|null $plz\n * @property string      $name\n * @property string[]    $infos\n *\n * @extends  \\Arrayy\\Arrayy\u003carray-key,mixed\u003e\n */\nclass CityData extends \\Arrayy\\Arrayy\n{\n    protected $checkPropertyTypes = true;\n\n    protected $checkPropertiesMismatchInConstructor = true;\n\n    protected $checkForMissingPropertiesInConstructor = true;\n\n    protected $checkPropertiesMismatch = true;\n}\n\n$json = '{\"id\":1,\"firstName\":\"Lars\",\"lastName\":\"Moelleken\",\"city\":{\"name\":\"Düsseldorf\",\"plz\":null,\"infos\":[\"lall\"]}}';\n$userData = UserData::createFromJsonMapper($json);\n\n$userData; // =\u003e \\Arrayy\\tests\\UserData::class\necho $userData-\u003efirstName; // 'Lars' \n$userData-\u003ecity; // =\u003e \\Arrayy\\tests\\CityData::class\necho $userData-\u003ecity-\u003ename; // 'Düsseldorf'\n```\n\n##### createFromObject(ArrayAccess $object) : Arrayy (Immutable)\n\nCreate an new instance filled with values from an object that have implemented ArrayAccess.\n\n```php\n$object = A::create(1, 'foo');\n$arrayy = A::createFromObject($object); // Arrayy[1, 'foo']\n```\n\n##### createFromObjectVars(\\object $object) : Arrayy (Immutable)\n\nCreate an new instance filled with values from an object.\n\n```php\n$object = new stdClass();\n$object-\u003ex = 42;\n$arrayy = A::createFromObjectVars($object); // Arrayy['x' =\u003e 42]\n```\n\n##### createWithRange() : Arrayy (Immutable)\n\nCreate an new instance containing a range of elements.\n\n```php\n$arrayy = A::createWithRange(2, 4); // Arrayy[2, 3, 4]\n```\n\n##### createFromGeneratorImmutable() : Arrayy (Immutable)\n\nCreate an new instance filled with a copy of values from a \"Generator\"-object.\n\nWARNING: Need more memory then the \"A::createFromGeneratorFunction()\" call, because we\n         will fetch and store all keys and values from the Generator.\n\n```php\n$generator = A::createWithRange(2, 4)-\u003egetGenerator();\n$arrayy = A::createFromGeneratorImmutable($generator); // Arrayy[2, 3, 4]\n```\n\n##### createFromGeneratorFunction() : Arrayy (Immutable)\n\nCreate an new instance from a callable function which will return a Generator.\n\n```php\n$generatorFunction = static function() {\n    yield from A::createWithRange(2, 4)-\u003egetArray();\n};\n$arrayy = A::createFromGeneratorFunction($generatorFunction); // Arrayy[2, 3, 4]\n```\n\n##### createFromString(string $str) : Arrayy (Immutable)\n\nCreate an new Arrayy object via string.\n\n```php\n$arrayy = A::createFromString(' foo, bar '); // Arrayy['foo', 'bar']\n```\n\n## Instance Methods\n\nArrayy: All examples below make use of PHP 5.6\nfunction importing, and PHP 5.4 short array syntax. For further details,\nsee the documentation for the create method above, as well as the notes\non PHP 5.6 creation.\n\n##### \"set an array value\"\n\n```php\n$arrayy = a(['fòô' =\u003e 'bàř']);\n$arrayy['foo'] = 'bar';\nvar_dump($arrayy); // Arrayy['fòô' =\u003e 'bàř', 'foo' =\u003e 'bar']\n```\n\n##### \"get an array value\"\n\n```php\n$arrayy = a(['fòô' =\u003e 'bàř']);\nvar_dump($arrayy['fòô']); // 'bàř'\n```\n\n##### \"get the array\"\n\n```php\n$arrayy = a(['fòô' =\u003e 'bàř']);\nvar_dump($arrayy-\u003egetArray()); // ['fòô' =\u003e 'bàř']\n```\n\n##### \"delete an array value\"\n\n```php\n$arrayy = a(['fòô' =\u003e 'bàř', 'lall']);\nunset($arrayy['fòô']);\nvar_dump($arrayy); // Arrayy[0 =\u003e 'lall']\n```\n\n##### \"check if an array value is-set\"\n\n```php\n$arrayy = a(['fòô' =\u003e 'bàř']);\nisset($arrayy['fòô']); // true\n```\n\n##### \"simple loop with an Arrayy-object\"\n \n```php\n$arrayy = a(['fòô' =\u003e 'bàř']);\nforeach ($arrayy) as $key =\u003e $value) {\n  echo $key . ' | ' . $value; // fòô | bàř\n}\n```\n\n## Arrayy methods\n\n\u003cp id=\"voku-php-readme-class-methods\"\u003e\u003c/p\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#addmixed-value-intstringnull-key-static\"\u003eadd\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#appendmixed-value-mixed-key-this\"\u003eappend\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#appendarrayvaluesarray-values-mixed-key-this\"\u003eappendArrayValues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#appendimmutablemixed-value-mixed-key-this\"\u003eappendImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#appendtoeachkeyintstring-prefix-static\"\u003eappendToEachKey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#appendtoeachvaluefloatintstring-prefix-static\"\u003eappendToEachValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#arsort-this\"\u003earsort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#arsortimmutable-this\"\u003earsortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#asortint-sort_flags-this\"\u003easort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#asortimmutableint-sort_flags-this\"\u003easortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#atclosure-closure-static\"\u003eat\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#averageint-decimals-floatint\"\u003eaverage\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#changekeycaseint-case-static\"\u003echangeKeyCase\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#changeseparatorstring-separator-this\"\u003echangeSeparator\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#chunkint-size-bool-preservekeys-staticstatic\"\u003echunk\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#clean-static\"\u003eclean\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#clearintintstringstringnull-key-this\"\u003eclear\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containsfloatintstring-value-bool-recursive-bool-strict-bool\"\u003econtains\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containscaseinsensitivemixed-value-bool-recursive-bool\"\u003econtainsCaseInsensitive\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containskeyintstring-key-bool\"\u003econtainsKey\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#containskeysarray-needles-bool-recursive-bool\"\u003econtainsKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containskeysrecursivearray-needles-bool\"\u003econtainsKeysRecursive\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containsonlyfloatintstring-value-bool-recursive-bool-strict-bool\"\u003econtainsOnly\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containsvaluefloatintstring-value-bool\"\u003econtainsValue\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#containsvaluerecursivefloatintstring-value-bool\"\u003econtainsValueRecursive\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#containsvaluesarray-needles-bool\"\u003econtainsValues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#countint-mode-int\"\u003ecount\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#countvalues-static\"\u003ecountValues\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#createmixed-data-string-iteratorclass-bool-checkpropertiesinconstructor-static\"\u003ecreate\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createbyreferencearray-array-this\"\u003ecreateByReference\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromarrayarray-array-static\"\u003ecreateFromArray\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromgeneratorfunctioncallable-generatorfunction-static\"\u003ecreateFromGeneratorFunction\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#createfromgeneratorimmutablegenerator-generator-static\"\u003ecreateFromGeneratorImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromjsonstring-json-static\"\u003ecreateFromJson\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromjsonmapperstring-json-static\"\u003ecreateFromJsonMapper\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromobjecttraversable-object-static\"\u003ecreateFromObject\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#createfromobjectvarsobject-object-static\"\u003ecreateFromObjectVars\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromstringstring-str-stringnull-delimiter-stringnull-regex-static\"\u003ecreateFromString\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createfromtraversableimmutabletraversable-traversable-bool-use_keys-static\"\u003ecreateFromTraversableImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#createwithrangefloatintstring-low-floatintstring-high-floatint-step-static\"\u003ecreateWithRange\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#current-falsemixed\"\u003ecurrent\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#customsortkeyscallable-callable-this\"\u003ecustomSortKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#customsortkeysimmutablecallable-callable-this\"\u003ecustomSortKeysImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#customsortvaluescallable-callable-this\"\u003ecustomSortValues\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#customsortvaluesimmutablecallable-callable-this\"\u003ecustomSortValuesImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#deleteintintstringstring-keyorkeys-void\"\u003edelete\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#diffarray-array-static\"\u003ediff\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#diffkeyarray-array-static\"\u003ediffKey\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#diffkeyandvaluearray-array-static\"\u003ediffKeyAndValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#diffrecursivearray-array-arraygeneratornull-helpervariableforrecursion-static\"\u003ediffRecursive\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#diffreversearray-array-static\"\u003ediffReverse\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#divide-static\"\u003edivide\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#eachclosure-closure-static\"\u003eeach\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#end-falsemixed\"\u003eend\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#exchangearrayarraymixedstatic-data-array\"\u003eexchangeArray\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#existsclosure-closure-bool\"\u003eexists\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#fillwithdefaultsint-num-mixed-default-static\"\u003efillWithDefaults\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#filterclosurenull-closure-int-flag-static\"\u003efilter\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#filterbystring-property-mixed-value-stringnull-comparisonop-static\"\u003efilterBy\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#findclosure-closure-falsemixed\"\u003efind\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#findbystring-property-mixed-value-string-comparisonop-static\"\u003efindBy\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#first-mixednull\"\u003efirst\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#firstkey-mixednull\"\u003efirstKey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#firstsimmutableintnull-number-static\"\u003efirstsImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#firstskeysintnull-number-static\"\u003efirstsKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#firstsmutableintnull-number-this\"\u003efirstsMutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#flattenstring-delimiter-string-prepend-arraynull-items-array\"\u003eflatten\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#flip-static\"\u003eflip\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getintstring-key-mixed-fallback-arraynull-array-bool-usebyreference-mixedstatic\"\u003eget\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getall-array\"\u003egetAll\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getarraybool-convertallarrayyelements-bool-preservekeys-array\"\u003egetArray\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getarraycopy-array\"\u003egetArrayCopy\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getbackwardsgenerator-generator\"\u003egetBackwardsGenerator\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getcolumnintstringnull-columnkey-intstringnull-indexkey-static\"\u003egetColumn\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getflags\"\u003egetFlags\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getgenerator-generator\"\u003egetGenerator\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getgeneratorbyreference-generator\"\u003egetGeneratorByReference\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getiterator-iteratormixedmixed\"\u003egetIterator\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getiteratorclass-string\"\u003egetIteratorClass\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getkeys-static\"\u003egetKeys\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getlistbool-convertallarrayyelements-array\"\u003egetList\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getobject-stdclass\"\u003egetObject\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getphpdocpropertiesfromclass-arrayarray-keytypecheckinterfacetypecheckarrayarray-keytypecheckinterface\"\u003egetPhpDocPropertiesFromClass\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getrandom-static\"\u003egetRandom\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getrandomkey-mixednull\"\u003egetRandomKey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getrandomkeysint-number-static\"\u003egetRandomKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getrandomvalue-mixednull\"\u003egetRandomValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getrandomvaluesint-number-static\"\u003egetRandomValues\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getvalues-static\"\u003egetValues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getvaluesyield-generator\"\u003egetValuesYield\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#groupcallableintstring-grouper-bool-savekeys-static\"\u003egroup\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#hasmixed-key-bool\"\u003ehas\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#hasvaluemixed-value-bool\"\u003ehasValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#implodestring-glue-string-prefix-string\"\u003eimplode\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#implodekeysstring-glue-string\"\u003eimplodeKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#indexbyintstring-key-static\"\u003eindexBy\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#indexofmixed-value-falseintstring\"\u003eindexOf\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#initialint-to-static\"\u003einitial\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#intersectionarray-search-bool-keepkeys-static\"\u003eintersection\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#intersectionmultiarray-array-static\"\u003eintersectionMulti\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#intersectsarray-search-bool\"\u003eintersects\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#invokecallable-callable-mixed-arguments-static\"\u003einvoke\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#isassocbool-recursive-bool\"\u003eisAssoc\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#isemptyintintstringstringnull-keys-bool\"\u003eisEmpty\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#isequalarray-array-bool\"\u003eisEqual\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#ismultiarray-bool\"\u003eisMultiArray\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#isnumeric-bool\"\u003eisNumeric\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#issequentialbool-recursive-bool\"\u003eisSequential\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#jsonserialize-array\"\u003ejsonSerialize\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#key-intstringnull\"\u003ekey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#keyexistsintstring-key-bool\"\u003ekeyExists\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#keysbool-recursive-mixednull-search_values-bool-strict-static\"\u003ekeys\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#krsortint-sort_flags-this\"\u003ekrsort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#krsortimmutableint-sort_flags-this\"\u003ekrsortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#ksortint-sort_flags-this\"\u003eksort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#ksortimmutableint-sort_flags-this\"\u003eksortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#last-mixednull\"\u003elast\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#lastkey-mixednull\"\u003elastKey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#lastsimmutableintnull-number-static\"\u003elastsImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#lastsmutableintnull-number-this\"\u003elastsMutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#lengthint-mode-int\"\u003elength\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#mapcallable-callable-bool-usekeyassecondparameter-mixed-arguments-static\"\u003emap\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#matchesclosure-closure-bool\"\u003ematches\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#matchesanyclosure-closure-bool\"\u003ematchesAny\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#max-falsefloatintstring\"\u003emax\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#mergeappendkeepindexarray-array-bool-recursive-static\"\u003emergeAppendKeepIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#mergeappendnewindexarray-array-bool-recursive-static\"\u003emergeAppendNewIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#mergeprependkeepindexarray-array-bool-recursive-static\"\u003emergePrependKeepIndex\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#mergeprependnewindexarray-array-bool-recursive-static\"\u003emergePrependNewIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#meta-arrayymetamixedstatic\"\u003emeta\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#min-falsemixed\"\u003emin\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#mostusedvalue-mixednull\"\u003emostUsedValue\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#mostusedvaluesintnull-number-static\"\u003emostUsedValues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#moveelementintstring-from-int-to-static\"\u003emoveElement\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#moveelementtofirstplaceintstring-key-static\"\u003emoveElementToFirstPlace\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#moveelementtolastplaceintstring-key-static\"\u003emoveElementToLastPlace\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#natcasesort-this\"\u003enatcasesort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#natcasesortimmutable-this\"\u003enatcasesortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#natsort-this\"\u003enatsort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#natsortimmutable-this\"\u003enatsortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#next-falsemixed\"\u003enext\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#nthint-step-int-offset-static\"\u003enth\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#offsetexistsboolintstring-offset-bool\"\u003eoffsetExists\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#offsetgetintstring-offset-mixed\"\u003eoffsetGet\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#offsetsetintstringnull-offset-mixed-value-void\"\u003eoffsetSet\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#offsetunsetintstring-offset-void\"\u003eoffsetUnset\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#onlyintstring-keys-static\"\u003eonly\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#padint-size-mixed-value-static\"\u003epad\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#partitionclosure-closure-arrayintstatic\"\u003epartition\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#pop-mixednull\"\u003epop\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#prependmixed-value-mixed-key-this\"\u003eprepend\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#prependimmutablemixed-value-mixed-key-this\"\u003eprependImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#prependtoeachkeyfloatintstring-suffix-static\"\u003eprependToEachKey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#prependtoeachvaluefloatintstring-suffix-static\"\u003eprependToEachValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#pullintintstringstringnull-keyorkeys-mixed-fallback-mixed\"\u003epull\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#pushmixed-args-this\"\u003epush\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#randomimmutableintnull-number-static\"\u003erandomImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#randomkey-mixednull\"\u003erandomKey\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#randomkeysint-number-static\"\u003erandomKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#randommutableintnull-number-this\"\u003erandomMutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#randomvalue-mixed\"\u003erandomValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#randomvaluesint-number-static\"\u003erandomValues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#randomweightedarray-array-int-number\"\u003erandomWeighted\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#reducecallable-callable-mixed-initial-static\"\u003ereduce\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#reduce_dimensionbool-unique-static\"\u003ereduce_dimension\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#reindex-this\"\u003ereindex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#rejectclosure-closure-static\"\u003ereject\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#removemixed-key-static\"\u003eremove\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#removeelementmixed-element-static\"\u003eremoveElement\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#removefirst-static\"\u003eremoveFirst\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#removelast-static\"\u003eremoveLast\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#removevaluemixed-value-static\"\u003eremoveValue\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#repeatint-times-static\"\u003erepeat\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#replacemixed-oldkey-mixed-newkey-mixed-newvalue-static\"\u003ereplace\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#replaceallkeysintstring-keys-static\"\u003ereplaceAllKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#replaceallvaluesarray-array-static\"\u003ereplaceAllValues\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#replacekeysarray-keys-static\"\u003ereplaceKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#replaceonevaluemixed-search-mixed-replacement-static\"\u003ereplaceOneValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#replacevaluesstring-search-string-replacement-static\"\u003ereplaceValues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#restint-from-static\"\u003erest\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#reverse-this\"\u003ereverse\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#reversekeepindex-this\"\u003ereverseKeepIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#rsortint-sort_flags-this\"\u003ersort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#rsortimmutableint-sort_flags-this\"\u003ersortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#searchindexmixed-value-falseintstring\"\u003esearchIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#searchvaluemixed-index-static\"\u003esearchValue\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#serialize-string\"\u003eserialize\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#setstring-key-mixed-value-this\"\u003eset\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#setandgetmixed-key-mixed-fallback-mixed\"\u003esetAndGet\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#setflagsint-flags\"\u003esetFlags\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#setiteratorclassstring-iteratorclass-void\"\u003esetIteratorClass\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#shift-mixednull\"\u003eshift\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#shufflebool-secure-arraynull-array-static\"\u003eshuffle\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sizeint-mode-int\"\u003esize\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sizeisint-size-bool\"\u003esizeIs\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sizeisbetweenint-fromsize-int-tosize-bool\"\u003esizeIsBetween\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#sizeisgreaterthanint-size-bool\"\u003esizeIsGreaterThan\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sizeislessthanint-size-bool\"\u003esizeIsLessThan\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sizerecursive-int\"\u003esizeRecursive\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sliceint-offset-intnull-length-bool-preservekeys-static\"\u003eslice\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#sortintstring-direction-int-strategy-bool-keepkeys-static\"\u003esort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sortimmutableintstring-direction-int-strategy-bool-keepkeys-static\"\u003esortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sortkeysintstring-direction-int-strategy-this\"\u003esortKeys\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sortkeysimmutableintstring-direction-int-strategy-this\"\u003esortKeysImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#sortvaluekeepindexintstring-direction-int-strategy-static\"\u003esortValueKeepIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sortvaluenewindexintstring-direction-int-strategy-static\"\u003esortValueNewIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#sortercallablemixednull-sorter-intstring-direction-int-strategy-static\"\u003esorter\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#spliceint-offset-intnull-length-array-replacement-static\"\u003esplice\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#splitint-numberofpieces-bool-keepkeys-static\"\u003esplit\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#stripempty-static\"\u003estripEmpty\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#swapintstring-swapa-intstring-swapb-static\"\u003eswap\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#toarraybool-convertallarrayyelements-bool-preservekeys-array\"\u003etoArray\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#tojsonint-options-int-depth-string\"\u003etoJson\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#tolistbool-convertallarrayyelements-array\"\u003etoList\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#topermutationstringnull-items-string-helper-staticstatic\"\u003etoPermutation\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#tostringstring-separator-string\"\u003etoString\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#uasortcallable-callable-this\"\u003euasort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uasortimmutablecallable-callable-this\"\u003euasortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uksortcallable-callable-static\"\u003euksort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uksortimmutablecallable-callable-static\"\u003euksortImmutable\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#unique-static\"\u003eunique\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uniquekeepindex-this\"\u003euniqueKeepIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uniquenewindex-this\"\u003euniqueNewIndex\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#unserializestring-string-this\"\u003eunserialize\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#unshiftmixed-args-this\"\u003eunshift\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#validateclosure-closure-bool\"\u003evalidate\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#values-static\"\u003evalues\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#walkcallable-callable-bool-recursive-mixed-userdata-this\"\u003ewalk\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#wherestring-keyorpropertyormethod-mixed-value-static\"\u003ewhere\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n## add(mixed $value, int|string|null $key): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAdd new values (optional using dot-notation).\n\n**Parameters:**\n- `T $value`\n- `TKey $key`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return this Arrayy object, with the appended values.\u003c/p\u003e`\n\n--------\n\n## append(mixed $value, mixed $key): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAppend a (key) + value to the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e 'bàř'])-\u003eappend('foo'); // Arrayy['fòô' =\u003e 'bàř', 0 =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $value`\n- `TKey|null $key`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with the appended values.\u003c/p\u003e`\n\n--------\n\n## appendArrayValues(array $values, mixed $key): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAppend a (key) + values to the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e ['bàř']])-\u003eappendArrayValues(['foo1', 'foo2'], 'fòô'); // Arrayy['fòô' =\u003e ['bàř', 'foo1', 'foo2']]\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cT\u003e $values`\n- `TKey|null $key`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with the appended values.\u003c/p\u003e`\n\n--------\n\n## appendImmutable(mixed $value, mixed $key): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAppend a (key) + value to the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e 'bàř'])-\u003eappendImmutable('foo')-\u003egetArray(); // ['fòô' =\u003e 'bàř', 0 =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $value`\n- `TKey $key`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object, with the appended values.\u003c/p\u003e`\n\n--------\n\n## appendToEachKey(int|string $prefix): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAdd a suffix to each key.\n\n**Parameters:**\n- `int|string $prefix`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return an Arrayy object, with the prefixed keys.\u003c/p\u003e`\n\n--------\n\n## appendToEachValue(float|int|string $prefix): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAdd a prefix to each value.\n\n**Parameters:**\n- `float|int|string $prefix`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return an Arrayy object, with the prefixed values.\u003c/p\u003e`\n\n--------\n\n## arsort(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array in reverse order and maintain index association.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## arsortImmutable(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array in reverse order and maintain index association.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## asort(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries by value.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## asortImmutable(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries by value.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## at(\\Closure $closure): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nIterate over the current array and execute a callback for each loop.\n\nEXAMPLE: \u003ccode\u003e\n$result = A::create();\n$closure = function ($value, $key) use ($result) {\n    $result[$key] = ':' . $value . ':';\n};\na(['foo', 'bar' =\u003e 'bis'])-\u003eat($closure); // Arrayy[':foo:', 'bar' =\u003e ':bis:']\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , TKey ): mixed $closure`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## average(int $decimals): float|int\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturns the average value of the current array.\n\nEXAMPLE: \u003ccode\u003e\na([-9, -8, -7, 1.32])-\u003eaverage(2); // -5.67\n\u003c/code\u003e\n\n**Parameters:**\n- `int $decimals \u003cp\u003eThe number of decimal-numbers to return.\u003c/p\u003e`\n\n**Return:**\n- `float|int \u003cp\u003eThe average value.\u003c/p\u003e`\n\n--------\n\n## changeKeyCase(int $case): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChanges all keys in an array.\n\n**Parameters:**\n- `int $case [optional] \u003cp\u003e Either \u003cstrong\u003eCASE_UPPER\u003c/strong\u003e\u003cbr /\u003e\nor \u003cstrong\u003eCASE_LOWER\u003c/strong\u003e (default)\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## changeSeparator(string $separator): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChange the path separator of the array wrapper.\n\nBy default, the separator is: \".\"\n\n**Parameters:**\n- `non-empty-string $separator \u003cp\u003eSeparator to set.\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## chunk(int $size, bool $preserveKeys): static|static[]\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate a chunked version of the current array.\n\nEXAMPLE: \u003ccode\u003e\na([-9, -8, -7, 1.32])-\u003echunk(2); // Arrayy[[-9, -8], [-7, 1.32]]\n\u003c/code\u003e\n\n**Parameters:**\n- `int $size \u003cp\u003eSize of each chunk.\u003c/p\u003e`\n- `bool $preserveKeys \u003cp\u003eWhether array keys are preserved or no.\u003c/p\u003e`\n\n**Return:**\n- `static|static[] \u003cp\u003e(Immutable) A new array of chunks from the original array.\u003c/p\u003e`\n\n--------\n\n## clean(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nClean all falsy values from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([-8 =\u003e -9, 1, 2 =\u003e false])-\u003eclean(); // Arrayy[-8 =\u003e -9, 1]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## clear(int|int[]|string|string[]|null $key): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nWARNING!!! -\u003e Clear the current full array or a $key of it.\n\nEXAMPLE: \u003ccode\u003e\na([-8 =\u003e -9, 1, 2 =\u003e false])-\u003eclear(); // Arrayy[]\n\u003c/code\u003e\n\n**Parameters:**\n- `int|int[]|string|string[]|null $key`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with an empty array.\u003c/p\u003e`\n\n--------\n\n## contains(float|int|string $value, bool $recursive, bool $strict): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if an item is in the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1, true])-\u003econtains(true); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `float|int|string $value`\n- `bool $recursive`\n- `bool $strict`\n\n**Return:**\n- `bool`\n\n--------\n\n## containsCaseInsensitive(mixed $value, bool $recursive): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if an (case-insensitive) string is in the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['E', 'é'])-\u003econtainsCaseInsensitive('É'); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `mixed $value`\n- `bool $recursive`\n\n**Return:**\n- `bool`\n\n--------\n\n## containsKey(int|string $key): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if the given key/index exists in the array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e true])-\u003econtainsKey(1); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $key \u003cp\u003ekey/index to search for\u003c/p\u003e`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if the given key/index exists in the array, false otherwise.\u003c/p\u003e`\n\n--------\n\n## containsKeys(array $needles, bool $recursive): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if all given needles are present in the array as key/index.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e true])-\u003econtainsKeys(array(1 =\u003e 0)); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cTKey\u003e $needles \u003cp\u003eThe keys you are searching for.\u003c/p\u003e`\n- `bool $recursive`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if all the given keys/indexes exists in the array, false otherwise.\u003c/p\u003e`\n\n--------\n\n## containsKeysRecursive(array $needles): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if all given needles are present in the array as key/index.\n\n**Parameters:**\n- `array\u003cTKey\u003e $needles \u003cp\u003eThe keys you are searching for.\u003c/p\u003e`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if all the given keys/indexes exists in the array, false otherwise.\u003c/p\u003e`\n\n--------\n\n## containsOnly(float|int|string $value, bool $recursive, bool $strict): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if an item is in the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1, true])-\u003econtainsOnly(true); // false\n\u003c/code\u003e\n\n**Parameters:**\n- `float|int|string $value`\n- `bool $recursive`\n- `bool $strict`\n\n**Return:**\n- `bool`\n\n--------\n\n## containsValue(float|int|string $value): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003econtains()\"\n\n**Parameters:**\n- `float|int|string $value`\n\n**Return:**\n- `bool`\n\n--------\n\n## containsValueRecursive(float|int|string $value): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003econtains($value, true)\"\n\n**Parameters:**\n- `float|int|string $value`\n\n**Return:**\n- `bool`\n\n--------\n\n## containsValues(array $needles): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if all given needles are present in the array.\n\nEXAMPLE: \u003ccode\u003e\na([1, true])-\u003econtainsValues(array(1, true)); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cT\u003e $needles`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if all the given values exists in the array, false otherwise.\u003c/p\u003e`\n\n--------\n\n## count(int $mode): int\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCounts all elements in an array, or something in an object.\n\nEXAMPLE: \u003ccode\u003e\na([-9, -8, -7, 1.32])-\u003ecount(); // 4\n\u003c/code\u003e\n\n\u003cp\u003e\nFor objects, if you have SPL installed, you can hook into count() by implementing interface {@see \\Countable}.\nThe interface has exactly one method, {@see \\Countable::count()}, which returns the return value for the count()\nfunction. Please see the {@see \\Array} section of the manual for a detailed explanation of how arrays are\nimplemented and used in PHP.\n\u003c/p\u003e\n\n**Parameters:**\n- `int $mode [optional] If the optional mode parameter is set to\nCOUNT_RECURSIVE (or 1), count\nwill recursively count the array. This is particularly useful for\ncounting all the elements of a multidimensional array. count does not detect infinite recursion.`\n\n**Return:**\n- `int \u003cp\u003e\nThe number of elements in var, which is\ntypically an array, since anything else will have one\nelement.\n\u003c/p\u003e\n\u003cp\u003e\nIf var is not an array or an object with\nimplemented Countable interface,\n1 will be returned.\nThere is one exception, if var is \u0026null;,\n0 will be returned.\n\u003c/p\u003e\n\u003cp\u003e\nCaution: count may return 0 for a variable that isn't set,\nbut it may also return 0 for a variable that has been initialized with an\nempty array. Use isset to test if a variable is set.\n\u003c/p\u003e`\n\n--------\n\n## countValues(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCounts all the values of an array\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e\n(Immutable)\nAn associative Arrayy-object of values from input as\nkeys and their count as value.\n\u003c/p\u003e`\n\n--------\n\n## create(mixed $data, string $iteratorClass, bool $checkPropertiesInConstructor): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreates an Arrayy object.\n\n**Parameters:**\n- `mixed $data`\n- `class-string\u003c\\Arrayy\\ArrayyIterator\u003e $iteratorClass`\n- `bool $checkPropertiesInConstructor`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createByReference(array $array): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nWARNING: Creates an Arrayy object by reference.\n\n**Parameters:**\n- `array $array`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromArray(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new Arrayy object via JSON.\n\n**Parameters:**\n- `array $array`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromGeneratorFunction(callable $generatorFunction): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new instance from a callable function which will return an Generator.\n\n**Parameters:**\n- `callable(): \\Generator\u003cTKey, T\u003e $generatorFunction`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromGeneratorImmutable(\\Generator $generator): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new instance filled with a copy of values from a \"Generator\"-object.\n\n**Parameters:**\n- `\\Generator\u003cTKey, T\u003e $generator`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromJson(string $json): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new Arrayy object via JSON.\n\n**Parameters:**\n- `string $json`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromJsonMapper(string $json): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `string $json`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## createFromObject(\\Traversable $object): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new instance filled with values from an object that is iterable.\n\n**Parameters:**\n- `\\Traversable\u003carray-key, T\u003e $object \u003cp\u003eiterable object\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromObjectVars(object $object): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new instance filled with values from an object.\n\n**Parameters:**\n- `object $object`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromString(string $str, string|null $delimiter, string|null $regEx): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new Arrayy object via string.\n\n**Parameters:**\n- `string $str \u003cp\u003eThe input string.\u003c/p\u003e`\n- `non-empty-string|null $delimiter \u003cp\u003eThe boundary string.\u003c/p\u003e`\n- `string|null $regEx \u003cp\u003eUse the $delimiter or the $regEx, so if $pattern is null, $delimiter will be\nused.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createFromTraversableImmutable(\\Traversable $traversable, bool $use_keys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new instance filled with a copy of values from a \"Traversable\"-object.\n\n**Parameters:**\n- `\\Traversable\u003c(array-key|TKey), T\u003e $traversable`\n- `bool $use_keys [optional] \u003cp\u003e\nWhether to use the iterator element keys as index.\n\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## createWithRange(float|int|string $low, float|int|string $high, float|int $step): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an new instance containing a range of elements.\n\n**Parameters:**\n- `float|int|string $low \u003cp\u003eFirst value of the sequence.\u003c/p\u003e`\n- `float|int|string $high \u003cp\u003eThe sequence is ended upon reaching the end value.\u003c/p\u003e`\n- `float|int $step \u003cp\u003eUsed as the increment between elements in the sequence.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Returns an new instance of the Arrayy object.\u003c/p\u003e`\n\n--------\n\n## current(): false|mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGets the element of the array at the current internal iterator position.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `false|mixed`\n\n--------\n\n## customSortKeys(callable $callable): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCustom sort by index via \"uksort\".\n\nEXAMPLE: \u003ccode\u003e\n$callable = function ($a, $b) {\n    if ($a == $b) {\n        return 0;\n    }\n    return ($a \u003e $b) ? 1 : -1;\n};\n$arrayy = a(['three' =\u003e 3, 'one' =\u003e 1, 'two' =\u003e 2]);\n$resultArrayy = $arrayy-\u003ecustomSortKeys($callable); // Arrayy['one' =\u003e 1, 'three' =\u003e 3, 'two' =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## customSortKeysImmutable(callable $callable): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCustom sort by index via \"uksort\".\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## customSortValues(callable $callable): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCustom sort by value via \"usort\".\n\nEXAMPLE: \u003ccode\u003e\n$callable = function ($a, $b) {\n    if ($a == $b) {\n        return 0;\n    }\n    return ($a \u003e $b) ? 1 : -1;\n};\n$arrayy = a(['three' =\u003e 3, 'one' =\u003e 1, 'two' =\u003e 2]);\n$resultArrayy = $arrayy-\u003ecustomSortValues($callable); // Arrayy[1, 2, 3]\n\u003c/code\u003e\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## customSortValuesImmutable(callable $callable): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCustom sort by value via \"usort\".\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## delete(int|int[]|string|string[] $keyOrKeys): void\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nDelete the given key or keys.\n\n**Parameters:**\n- `int|int[]|string|string[] $keyOrKeys`\n\n**Return:**\n- `void`\n\n--------\n\n## diff(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn elements where the values that are only in the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 1, 2 =\u003e 2])-\u003ediff([1 =\u003e 1]); // Arrayy[2 =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `array ...$array`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## diffKey(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn elements where the keys are only in the current array.\n\n**Parameters:**\n- `array ...$array`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## diffKeyAndValue(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn elements where the values and keys are only in the current array.\n\n**Parameters:**\n- `array ...$array`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## diffRecursive(array $array, array|\\Generator|null $helperVariableForRecursion): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn elements where the values are only in the current multi-dimensional array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e [1 =\u003e 1], 2 =\u003e [2 =\u003e 2]])-\u003ediffRecursive([1 =\u003e [1 =\u003e 1]]); // Arrayy[2 =\u003e [2 =\u003e 2]]\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n- `null|array\u003cTKey, T\u003e|\\Generator\u003cTKey, T\u003e $helperVariableForRecursion \u003cp\u003e(only for internal usage)\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## diffReverse(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn elements where the values that are only in the new $array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 1])-\u003ediffReverse([1 =\u003e 1, 2 =\u003e 2]); // Arrayy[2 =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## divide(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nDivide an array into two arrays. One with keys and the other with values.\n\nEXAMPLE: \u003ccode\u003e\na(['a' =\u003e 1, 'b' =\u003e ''])-\u003edivide(); // Arrayy[Arrayy['a', 'b'], Arrayy[1, '']]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## each(\\Closure $closure): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nIterate over the current array and modify the array's value.\n\nEXAMPLE: \u003ccode\u003e\n$result = A::create();\n$closure = function ($value) {\n    return ':' . $value . ':';\n};\na(['foo', 'bar' =\u003e 'bis'])-\u003eeach($closure); // Arrayy[':foo:', 'bar' =\u003e ':bis:']\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , ?TKey ): T $closure`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## end(): false|mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSets the internal iterator to the last element in the array and returns this element.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `false|mixed`\n\n--------\n\n## exchangeArray(array|mixed|static $data): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nExchange the array for another one.\n\n**Parameters:**\n- `T|array\u003cTKey, T\u003e|self\u003cTKey, T\u003e $data 1. use the current array, if it's a array\n2. fallback to empty array, if there is nothing\n3. call \"getArray()\" on object, if there is a \"Arrayy\"-object\n4. call \"createFromObject()\" on object, if there is a \"\\Traversable\"-object\n5. call \"__toArray()\" on object, if the method exists\n6. cast a string or object with \"__toString()\" into an array\n7. throw a \"InvalidArgumentException\"-Exception`\n\n**Return:**\n- `array`\n\n--------\n\n## exists(\\Closure $closure): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if a value is in the current array using a closure.\n\nEXAMPLE: \u003ccode\u003e\n$callable = function ($value, $key) {\n    return 2 === $key and 'two' === $value;\n};\na(['foo', 2 =\u003e 'two'])-\u003eexists($callable); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if the given value is found, false otherwise.\u003c/p\u003e`\n\n--------\n\n## fillWithDefaults(int $num, mixed $default): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nFill the array until \"$num\" with \"$default\" values.\n\nEXAMPLE: \u003ccode\u003e\na(['bar'])-\u003efillWithDefaults(3, 'foo'); // Arrayy['bar', 'foo', 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `int $num`\n- `T $default`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## filter(\\Closure|null $closure, int $flag): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nFind all items in an array that pass the truth test.\n\nEXAMPLE: \u003ccode\u003e\n$closure = function ($value) {\n    return $value % 2 !== 0;\n}\na([1, 2, 3, 4])-\u003efilter($closure); // Arrayy[0 =\u003e 1, 2 =\u003e 3]\n\u003c/code\u003e\n\n**Parameters:**\n- `null|\\Closure(T , TKey  = default): bool|\\Closure(T ): bool|\\Closure(TKey ): bool $closure [optional] \u003cp\u003e\nThe callback function to use\n\u003c/p\u003e\n\u003cp\u003e\nIf no callback is supplied, all entries of\ninput equal to false (see\nconverting to\nboolean) will be removed.\n\u003c/p\u003e`\n- `int $flag [optional] \u003cp\u003e\nFlag determining what arguments are sent to \u003ci\u003ecallback\u003c/i\u003e:\n\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cb\u003eARRAY_FILTER_USE_KEY\u003c/b\u003e (1) - pass key as the only argument\nto \u003ci\u003ecallback\u003c/i\u003e instead of the value\n\u003c/li\u003e\n\u003cli\u003e\n\u003cb\u003eARRAY_FILTER_USE_BOTH\u003c/b\u003e (2) - pass both value and key as\narguments to \u003ci\u003ecallback\u003c/i\u003e instead of the value\n\u003c/li\u003e\n\u003c/ul\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## filterBy(string $property, mixed $value, string|null $comparisonOp): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nFilters an array of objects (or a numeric array of associative arrays) based on the value of a particular\nproperty within that.\n\n**Parameters:**\n- `string $property`\n- `array|T $value`\n- `string|null $comparisonOp \u003cp\u003e\n'eq' (equals),\u003cbr /\u003e\n'gt' (greater),\u003cbr /\u003e\n'gte' || 'ge' (greater or equals),\u003cbr /\u003e\n'lt' (less),\u003cbr /\u003e\n'lte' || 'le' (less or equals),\u003cbr /\u003e\n'ne' (not equals),\u003cbr /\u003e\n'contains',\u003cbr /\u003e\n'notContains',\u003cbr /\u003e\n'newer' (via strtotime),\u003cbr /\u003e\n'older' (via strtotime),\u003cbr /\u003e\n\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## find(\\Closure $closure): false|mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nFind the first item in an array that passes the truth test, otherwise return false.\n\nEXAMPLE: \u003ccode\u003e\n$search = 'foo';\n$closure = function ($value, $key) use ($search) {\n    return $value === $search;\n};\na(['foo', 'bar', 'lall'])-\u003efind($closure); // 'foo'\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure`\n\n**Return:**\n- `false|mixed \u003cp\u003eReturn false if we did not find the value.\u003c/p\u003e`\n\n--------\n\n## findBy(string $property, mixed $value, string $comparisonOp): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nfind by ...\n\nEXAMPLE: \u003ccode\u003e\n$array = [\n    0 =\u003e ['id' =\u003e 123, 'name' =\u003e 'foo', 'group' =\u003e 'primary', 'value' =\u003e 123456, 'when' =\u003e '2014-01-01'],\n    1 =\u003e ['id' =\u003e 456, 'name' =\u003e 'bar', 'group' =\u003e 'primary', 'value' =\u003e 1468, 'when' =\u003e '2014-07-15'],\n];\na($array)-\u003efilterBy('name', 'foo'); // Arrayy[0 =\u003e ['id' =\u003e 123, 'name' =\u003e 'foo', 'group' =\u003e 'primary', 'value' =\u003e 123456, 'when' =\u003e '2014-01-01']]\n\u003c/code\u003e\n\n**Parameters:**\n- `string $property`\n- `array|T $value`\n- `string $comparisonOp`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## first(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the first value from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003efirst(); // 'foo'\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eReturn null if there wasn't a element.\u003c/p\u003e`\n\n--------\n\n## firstKey(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the first key from the current array.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eReturn null if there wasn't a element.\u003c/p\u003e`\n\n--------\n\n## firstsImmutable(int|null $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the first value(s) from the current array.\n\nAnd will return an empty array if there was no first entry.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003efirstsImmutable(2); // Arrayy[0 =\u003e 'foo', 1 =\u003e 'bar']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|null $number \u003cp\u003eHow many values you will take?\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## firstsKeys(int|null $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the first value(s) from the current array.\n\nAnd will return an empty array if there was no first entry.\n\n**Parameters:**\n- `int|null $number \u003cp\u003eHow many values you will take?\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## firstsMutable(int|null $number): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet and remove the first value(s) from the current array.\n\nAnd will return an empty array if there was no first entry.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003efirstsMutable(); // 'foo'\n\u003c/code\u003e\n\n**Parameters:**\n- `int|null $number \u003cp\u003eHow many values you will take?\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## flatten(string $delimiter, string $prepend, array|null $items): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nFlatten an array with the given character as a key delimiter.\n\nEXAMPLE: \u003ccode\u003e\n$dot = a(['foo' =\u003e ['abc' =\u003e 'xyz', 'bar' =\u003e ['baz']]]);\n$flatten = $dot-\u003eflatten();\n$flatten['foo.abc']; // 'xyz'\n$flatten['foo.bar.0']; // 'baz'\n\u003c/code\u003e\n\n**Parameters:**\n- `string $delimiter`\n- `string $prepend`\n- `array|null $items`\n\n**Return:**\n- `array`\n\n--------\n\n## flip(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nExchanges all keys with their associated values in an array.\n\nEXAMPLE: \u003ccode\u003e\na([0 =\u003e 'foo', 1 =\u003e 'bar'])-\u003eflip(); // Arrayy['foo' =\u003e 0, 'bar' =\u003e 1]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## get(int|string $key, mixed $fallback, array|null $array, bool $useByReference): mixed|static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet a value from an array (optional using dot-notation).\n\nEXAMPLE: \u003ccode\u003e\n$arrayy = a(['user' =\u003e ['lastname' =\u003e 'Moelleken']]);\n$arrayy-\u003eget('user.lastname'); // 'Moelleken'\n// ---\n$arrayy = new A();\n$arrayy['user'] = ['lastname' =\u003e 'Moelleken'];\n$arrayy['user.firstname'] = 'Lars';\n$arrayy['user']['lastname']; // Moelleken\n$arrayy['user.lastname']; // Moelleken\n$arrayy['user.firstname']; // Lars\n\u003c/code\u003e\n\n**Parameters:**\n- `TKey $key \u003cp\u003eThe key to look for.\u003c/p\u003e`\n- `mixed $fallback \u003cp\u003eValue to fallback to.\u003c/p\u003e`\n- `array|null $array \u003cp\u003eThe array to get from, if it's set to \"null\" we use the current array from the\nclass.\u003c/p\u003e`\n- `bool $useByReference`\n\n**Return:**\n- `mixed|static`\n\n--------\n\n## getAll(): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003etoArray()\"\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `array`\n\n--------\n\n## getArray(bool $convertAllArrayyElements, bool $preserveKeys): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object.\n\nalias for \"toArray()\"\n\n**Parameters:**\n- `bool $convertAllArrayyElements \u003cp\u003e\nConvert all Child-\"Arrayy\" objects also to arrays.\n\u003c/p\u003e`\n- `bool $preserveKeys \u003cp\u003e\ne.g.: A generator maybe return the same key more than once,\nso maybe you will ignore the keys.\n\u003c/p\u003e`\n\n**Return:**\n- `array`\n\n--------\n\n## getArrayCopy(): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreates a copy of the ArrayyObject.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `array`\n\n--------\n\n## getBackwardsGenerator(): Generator\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object as generator.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\Generator`\n\n--------\n\n## getColumn(int|string|null $columnKey, int|string|null $indexKey): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturns the values from a single column of the input array, identified by\nthe $columnKey, can be used to extract data-columns from multi-arrays.\n\nEXAMPLE: \u003ccode\u003e\na([['foo' =\u003e 'bar', 'id' =\u003e 1], ['foo =\u003e 'lall', 'id' =\u003e 2]])-\u003egetColumn('foo', 'id'); // Arrayy[1 =\u003e 'bar', 2 =\u003e 'lall']\n\u003c/code\u003e\n\nINFO: Optionally, you may provide an $indexKey to index the values in the returned\n      array by the values from the $indexKey column in the input array.\n\n**Parameters:**\n- `int|string|null $columnKey`\n- `int|string|null $indexKey`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## getFlags(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## getGenerator(): Generator\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object as generator.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\Generator`\n\n--------\n\n## getGeneratorByReference(): Generator\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object as generator by reference.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\Generator`\n\n--------\n\n## getIterator(): Iterator\u003cmixed,mixed\u003e\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturns a new iterator, thus implementing the \\Iterator interface.\n\nEXAMPLE: \u003ccode\u003e\na(['foo', 'bar'])-\u003egetIterator(); // ArrayyIterator['foo', 'bar']\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\Iterator\u003cmixed,mixed\u003e \u003cp\u003eAn iterator for the values in the array.\u003c/p\u003e`\n\n--------\n\n## getIteratorClass(): string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGets the iterator classname for the ArrayObject.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `string`\n\n--------\n\n## getKeys(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003ekeys()\"\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## getList(bool $convertAllArrayyElements): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object as list.\n\nalias for \"toList()\"\n\n**Parameters:**\n- `bool $convertAllArrayyElements \u003cp\u003e\nConvert all Child-\"Arrayy\" objects also to arrays.\n\u003c/p\u003e`\n\n**Return:**\n- `array`\n\n--------\n\n## getObject(): stdClass\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object as object.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\stdClass`\n\n--------\n\n## getPhpDocPropertiesFromClass(): array\u003carray-key,\\TypeCheckInterface\u003e|\\TypeCheckArray\u003carray-key,\\TypeCheckInterface\u003e\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `array\u003carray-key,\\TypeCheckInterface\u003e|\\TypeCheckArray\u003carray-key,\\TypeCheckInterface\u003e`\n\n--------\n\n## getRandom(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003erandomImmutable()\"\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## getRandomKey(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003erandomKey()\"\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eGet a key/index or null if there wasn't a key/index.\u003c/p\u003e`\n\n--------\n\n## getRandomKeys(int $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003erandomKeys()\"\n\n**Parameters:**\n- `int $number`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## getRandomValue(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003erandomValue()\"\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eGet a random value or null if there wasn't a value.\u003c/p\u003e`\n\n--------\n\n## getRandomValues(int $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003erandomValues()\"\n\n**Parameters:**\n- `int $number`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## getValues(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGets all values.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003eThe values of all elements in this array, in the order they\nappear in the array.\u003c/p\u003e`\n\n--------\n\n## getValuesYield(): Generator\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGets all values via Generator.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\Generator \u003cp\u003eThe values of all elements in this array, in the order they\nappear in the array as Generator.\u003c/p\u003e`\n\n--------\n\n## group(callable|int|string $grouper, bool $saveKeys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGroup values from a array according to the results of a closure.\n\n**Parameters:**\n- `\\Closure(T , TKey ): TKey|TKey $grouper \u003cp\u003eA callable function name.\u003c/p\u003e`\n- `bool $saveKeys`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## has(mixed $key): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if an array has a given key.\n\n**Parameters:**\n- `null|TKey|TKey[] $key`\n\n**Return:**\n- `bool`\n\n--------\n\n## hasValue(mixed $value): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if an array has a given value.\n\nINFO: If you need to search recursive please use ```contains($value, true)```.\n\n**Parameters:**\n- `T $value`\n\n**Return:**\n- `bool`\n\n--------\n\n## implode(string $glue, string $prefix): string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nImplodes the values of this array.\n\nEXAMPLE: \u003ccode\u003e\na([0 =\u003e -9, 1, 2])-\u003eimplode('|'); // '-9|1|2'\n\u003c/code\u003e\n\n**Parameters:**\n- `string $glue`\n- `string $prefix`\n\n**Return:**\n- `string`\n\n--------\n\n## implodeKeys(string $glue): string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nImplodes the keys of this array.\n\n**Parameters:**\n- `string $glue`\n\n**Return:**\n- `string`\n\n--------\n\n## indexBy(int|string $key): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGiven a list and an iterate-function that returns\na key for each element in the list (or a property name),\nreturns an object with an index of each item.\n\n**Parameters:**\n- `array- $key`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## indexOf(mixed $value): false|int|string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003esearchIndex()\"\n\n**Parameters:**\n- `T $value \u003cp\u003eThe value to search for.\u003c/p\u003e`\n\n**Return:**\n- `false|int|string`\n\n--------\n\n## initial(int $to): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet everything but the last..$to items.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003einitial(2); // Arrayy[0 =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `int $to`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## intersection(array $search, bool $keepKeys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn an array with all elements found in input array.\n\nEXAMPLE: \u003ccode\u003e\na(['foo', 'bar'])-\u003eintersection(['bar', 'baz']); // Arrayy['bar']\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cTKey, T\u003e $search`\n- `bool $keepKeys`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## intersectionMulti(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn an array with all elements found in input array.\n\n**Parameters:**\n- `array ...$array`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## intersects(array $search): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn a boolean flag which indicates whether the two input arrays have any common elements.\n\nEXAMPLE: \u003ccode\u003e\na(['foo', 'bar'])-\u003eintersects(['föö', 'bär']); // false\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cTKey, T\u003e $search`\n\n**Return:**\n- `bool`\n\n--------\n\n## invoke(callable $callable, mixed $arguments): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nInvoke a function on all of an array's values.\n\n**Parameters:**\n- `callable $callable`\n- `mixed $arguments`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## isAssoc(bool $recursive): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck whether array is associative or not.\n\nEXAMPLE: \u003ccode\u003e\na(['foo' =\u003e 'bar', 2, 3])-\u003eisAssoc(); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `bool $recursive`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if associative, false otherwise.\u003c/p\u003e`\n\n--------\n\n## isEmpty(int|int[]|string|string[]|null $keys): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if a given key or keys are empty.\n\n**Parameters:**\n- `int|int[]|string|string[]|null $keys`\n\n**Return:**\n- `bool \u003cp\u003eReturns true if empty, false otherwise.\u003c/p\u003e`\n\n--------\n\n## isEqual(array $array): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if the current array is equal to the given \"$array\" or not.\n\nEXAMPLE: \u003ccode\u003e\na(['💩'])-\u003eisEqual(['💩']); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n\n**Return:**\n- `bool`\n\n--------\n\n## isMultiArray(): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if the current array is a multi-array.\n\nEXAMPLE: \u003ccode\u003e\na(['foo' =\u003e [1, 2 , 3]])-\u003eisMultiArray(); // true\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `bool`\n\n--------\n\n## isNumeric(): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck whether array is numeric or not.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `bool \u003cp\u003eReturns true if numeric, false otherwise.\u003c/p\u003e`\n\n--------\n\n## isSequential(bool $recursive): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if the current array is sequential [0, 1, 2, 3, 4, 5 ...] or not.\n\nEXAMPLE: \u003ccode\u003e\na([0 =\u003e 'foo', 1 =\u003e 'lall', 2 =\u003e 'foobar'])-\u003eisSequential(); // true\n\u003c/code\u003e\n\nINFO: If the array is empty we count it as non-sequential.\n\n**Parameters:**\n- `bool $recursive`\n\n**Return:**\n- `bool`\n\n--------\n\n## jsonSerialize(): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `array`\n\n--------\n\n## key(): int|string|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGets the key/index of the element at the current internal iterator position.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `int|string|null`\n\n--------\n\n## keyExists(int|string $key): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChecks if the given key exists in the provided array.\n\nINFO: This method only use \"array_key_exists()\" if you want to use \"dot\"-notation,\nthen you need to use \"Arrayy-\u003eoffsetExists()\".\n\n**Parameters:**\n- `int|string $key the key to look for`\n\n**Return:**\n- `bool`\n\n--------\n\n## keys(bool $recursive, mixed|null $search_values, bool $strict): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet all keys from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'foo', 2 =\u003e 'foo2', 3 =\u003e 'bar'])-\u003ekeys(); // Arrayy[1, 2, 3]\n\u003c/code\u003e\n\n**Parameters:**\n- `bool $recursive [optional] \u003cp\u003e\nGet all keys, also from all sub-arrays from an multi-dimensional array.\n\u003c/p\u003e`\n- `null|T|T[] $search_values [optional] \u003cp\u003e\nIf specified, then only keys containing these values are returned.\n\u003c/p\u003e`\n- `bool $strict [optional] \u003cp\u003e\nDetermines if strict comparison (===) should be used during the search.\n\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) An array of all the keys in input.\u003c/p\u003e`\n\n--------\n\n## krsort(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array by key in reverse order.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## krsortImmutable(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array by key in reverse order.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## ksort(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries by key.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## ksortImmutable(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries by key.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## last(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the last value from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003elast(); // 'lall'\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eReturn null if there wasn't a element.\u003c/p\u003e`\n\n--------\n\n## lastKey(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the last key from the current array.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eReturn null if there wasn't a element.\u003c/p\u003e`\n\n--------\n\n## lastsImmutable(int|null $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the last value(s) from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003elasts(2); // Arrayy[0 =\u003e 'bar', 1 =\u003e 'lall']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|null $number`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## lastsMutable(int|null $number): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the last value(s) from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003elasts(2); // Arrayy[0 =\u003e 'bar', 1 =\u003e 'lall']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|null $number`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## length(int $mode): int\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCount the values from the current array.\n\nalias: for \"Arrayy-\u003ecount()\"\n\n**Parameters:**\n- `int $mode`\n\n**Return:**\n- `int`\n\n--------\n\n## map(callable $callable, bool $useKeyAsSecondParameter, mixed $arguments): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nApply the given function to the every element of the array,\ncollecting the results.\n\nEXAMPLE: \u003ccode\u003e\na(['foo', 'Foo'])-\u003emap('mb_strtoupper'); // Arrayy['FOO', 'FOO']\n\u003c/code\u003e\n\n**Parameters:**\n- `callable $callable`\n- `bool $useKeyAsSecondParameter`\n- `mixed ...$arguments`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Arrayy object with modified elements.\u003c/p\u003e`\n\n--------\n\n## matches(\\Closure $closure): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if all items in current array match a truth test.\n\nEXAMPLE: \u003ccode\u003e\n$closure = function ($value, $key) {\n    return ($value % 2 === 0);\n};\na([2, 4, 8])-\u003ematches($closure); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure`\n\n**Return:**\n- `bool`\n\n--------\n\n## matchesAny(\\Closure $closure): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCheck if any item in the current array matches a truth test.\n\nEXAMPLE: \u003ccode\u003e\n$closure = function ($value, $key) {\n    return ($value % 2 === 0);\n};\na([1, 4, 7])-\u003ematches($closure); // true\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure`\n\n**Return:**\n- `bool`\n\n--------\n\n## max(): false|float|int|string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the max value from an array.\n\nEXAMPLE: \u003ccode\u003e\na([-9, -8, -7, 1.32])-\u003emax(); // 1.32\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `false|float|int|string \u003cp\u003eWill return false if there are no values.\u003c/p\u003e`\n\n--------\n\n## mergeAppendKeepIndex(array $array, bool $recursive): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMerge the new $array into the current array.\n\n- keep key,value from the current array, also if the index is in the new $array\n\nEXAMPLE: \u003ccode\u003e\n$array1 = [1 =\u003e 'one', 'foo' =\u003e 'bar1'];\n$array2 = ['foo' =\u003e 'bar2', 3 =\u003e 'three'];\na($array1)-\u003emergeAppendKeepIndex($array2); // Arrayy[1 =\u003e 'one', 'foo' =\u003e 'bar2', 3 =\u003e 'three']\n// ---\n$array1 = [0 =\u003e 'one', 1 =\u003e 'foo'];\n$array2 = [0 =\u003e 'foo', 1 =\u003e 'bar2'];\na($array1)-\u003emergeAppendKeepIndex($array2); // Arrayy[0 =\u003e 'foo', 1 =\u003e 'bar2']\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n- `bool $recursive`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## mergeAppendNewIndex(array $array, bool $recursive): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMerge the new $array into the current array.\n\n- replace duplicate assoc-keys from the current array with the key,values from the new $array\n- create new indexes\n\nEXAMPLE: \u003ccode\u003e\n$array1 = [1 =\u003e 'one', 'foo' =\u003e 'bar1'];\n$array2 = ['foo' =\u003e 'bar2', 3 =\u003e 'three'];\na($array1)-\u003emergeAppendNewIndex($array2); // Arrayy[0 =\u003e 'one', 'foo' =\u003e 'bar2', 1 =\u003e 'three']\n// ---\n$array1 = [0 =\u003e 'one', 1 =\u003e 'foo'];\n$array2 = [0 =\u003e 'foo', 1 =\u003e 'bar2'];\na($array1)-\u003emergeAppendNewIndex($array2); // Arrayy[0 =\u003e 'one', 1 =\u003e 'foo', 2 =\u003e 'foo', 3 =\u003e 'bar2']\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n- `bool $recursive`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## mergePrependKeepIndex(array $array, bool $recursive): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMerge the the current array into the $array.\n\n- use key,value from the new $array, also if the index is in the current array\n\nEXAMPLE: \u003ccode\u003e\n$array1 = [1 =\u003e 'one', 'foo' =\u003e 'bar1'];\n$array2 = ['foo' =\u003e 'bar2', 3 =\u003e 'three'];\na($array1)-\u003emergePrependKeepIndex($array2); // Arrayy['foo' =\u003e 'bar1', 3 =\u003e 'three', 1 =\u003e 'one']\n// ---\n$array1 = [0 =\u003e 'one', 1 =\u003e 'foo'];\n$array2 = [0 =\u003e 'foo', 1 =\u003e 'bar2'];\na($array1)-\u003emergePrependKeepIndex($array2); // Arrayy[0 =\u003e 'one', 1 =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n- `bool $recursive`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## mergePrependNewIndex(array $array, bool $recursive): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMerge the current array into the new $array.\n\n- replace duplicate assoc-keys from new $array with the key,values from the current array\n- create new indexes\n\nEXAMPLE: \u003ccode\u003e\n$array1 = [1 =\u003e 'one', 'foo' =\u003e 'bar1'];\n$array2 = ['foo' =\u003e 'bar2', 3 =\u003e 'three'];\na($array1)-\u003emergePrependNewIndex($array2); // Arrayy['foo' =\u003e 'bar1', 0 =\u003e 'three', 1 =\u003e 'one']\n// ---\n$array1 = [0 =\u003e 'one', 1 =\u003e 'foo'];\n$array2 = [0 =\u003e 'foo', 1 =\u003e 'bar2'];\na($array1)-\u003emergePrependNewIndex($array2); // Arrayy[0 =\u003e 'foo', 1 =\u003e 'bar2', 2 =\u003e 'one', 3 =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array`\n- `bool $recursive`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## meta(): ArrayyMeta|mixed|static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `\\ArrayyMeta|mixed|static`\n\n--------\n\n## min(): false|mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the min value from an array.\n\nEXAMPLE: \u003ccode\u003e\na([-9, -8, -7, 1.32])-\u003emin(); // -9\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `false|mixed \u003cp\u003eWill return false if there are no values.\u003c/p\u003e`\n\n--------\n\n## mostUsedValue(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the most used value from the array.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003e(Immutable) Return null if there wasn't an element.\u003c/p\u003e`\n\n--------\n\n## mostUsedValues(int|null $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the most used value from the array.\n\n**Parameters:**\n- `int|null $number \u003cp\u003eHow many values you will take?\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## moveElement(int|string $from, int $to): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMove an array element to a new index.\n\nEXAMPLE: \u003ccode\u003e\n$arr2 = new A(['A' =\u003e 'a', 'B' =\u003e 'b', 'C' =\u003e 'c', 'D' =\u003e 'd', 'E' =\u003e 'e']);\n$newArr2 = $arr2-\u003emoveElement('D', 1); // Arrayy['A' =\u003e 'a', 'D' =\u003e 'd', 'B' =\u003e 'b', 'C' =\u003e 'c', 'E' =\u003e 'e']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $from`\n- `int $to`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## moveElementToFirstPlace(int|string $key): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMove an array element to the first place.\n\nINFO: Instead of \"Arrayy-\u003emoveElement()\" this method will NOT\nloss the keys of an indexed array.\n\n**Parameters:**\n- `int|string $key`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## moveElementToLastPlace(int|string $key): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMove an array element to the last place.\n\nINFO: Instead of \"Arrayy-\u003emoveElement()\" this method will NOT\nloss the keys of an indexed array.\n\n**Parameters:**\n- `int|string $key`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## natcasesort(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array using a case insensitive \"natural order\" algorithm.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## natcasesortImmutable(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array using a case insensitive \"natural order\" algorithm.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## natsort(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort entries using a \"natural order\" algorithm.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## natsortImmutable(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort entries using a \"natural order\" algorithm.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## next(): false|mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nMoves the internal iterator position to the next element and returns this element.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `false|mixed \u003cp\u003e(Mutable) Will return false if there are no values.\u003c/p\u003e`\n\n--------\n\n## nth(int $step, int $offset): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the next nth keys and values from the array.\n\n**Parameters:**\n- `int $step`\n- `int $offset`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## offsetExists(bool|int|string $offset): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nWhether or not an offset exists.\n\n**Parameters:**\n- `bool|int|string $offset`\n\n**Return:**\n- `bool`\n\n--------\n\n## offsetGet(int|string $offset): mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturns the value at specified offset.\n\n**Parameters:**\n- `TKey $offset`\n\n**Return:**\n- `mixed \u003cp\u003eWill return null if the offset did not exists.\u003c/p\u003e`\n\n--------\n\n## offsetSet(int|string|null $offset, mixed $value): void\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAssigns a value to the specified offset + check the type.\n\n**Parameters:**\n- `int|string|null $offset`\n- `mixed $value`\n\n**Return:**\n- `void`\n\n--------\n\n## offsetUnset(int|string $offset): void\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nUnset an offset.\n\n**Parameters:**\n- `int|string $offset`\n\n**Return:**\n- `void \u003cp\u003e(Mutable) Return nothing.\u003c/p\u003e`\n\n--------\n\n## only(int[]|string[] $keys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet a subset of the items from the given array.\n\n**Parameters:**\n- `array-key[] $keys`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## pad(int $size, mixed $value): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPad array to the specified size with a given value.\n\n**Parameters:**\n- `int $size \u003cp\u003eSize of the result array.\u003c/p\u003e`\n- `mixed $value \u003cp\u003eEmpty value by default.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Arrayy object padded to $size with $value.\u003c/p\u003e`\n\n--------\n\n## partition(\\Closure $closure): array\u003cint,static\u003e\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPartitions this array in two array according to a predicate.\n\nKeys are preserved in the resulting array.\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure \u003cp\u003eThe predicate on which to partition.\u003c/p\u003e`\n\n**Return:**\n- `array\u003cint,static\u003e \u003cp\u003eAn array with two elements. The first element contains the array\nof elements where the predicate returned TRUE, the second element\ncontains the array of elements where the predicate returned FALSE.\u003c/p\u003e`\n\n--------\n\n## pop(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPop a specified value off the end of the current array.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003e(Mutable) The popped element from the current array or null if the array is e.g. empty.\u003c/p\u003e`\n\n--------\n\n## prepend(mixed $value, mixed $key): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPrepend a (key) + value to the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e 'bàř'])-\u003eprepend('foo'); // Arrayy[0 =\u003e 'foo', 'fòô' =\u003e 'bàř']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $value`\n- `TKey|null $key`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with the prepended value.\u003c/p\u003e`\n\n--------\n\n## prependImmutable(mixed $value, mixed $key): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPrepend a (key) + value to the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e 'bàř'])-\u003eprependImmutable('foo')-\u003egetArray(); // [0 =\u003e 'foo', 'fòô' =\u003e 'bàř']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $value`\n- `TKey $key`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object, with the prepended value.\u003c/p\u003e`\n\n--------\n\n## prependToEachKey(float|int|string $suffix): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAdd a suffix to each key.\n\n**Parameters:**\n- `float|int|string $suffix`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return an Arrayy object, with the prepended keys.\u003c/p\u003e`\n\n--------\n\n## prependToEachValue(float|int|string $suffix): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nAdd a suffix to each value.\n\n**Parameters:**\n- `float|int|string $suffix`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return an Arrayy object, with the prepended values.\u003c/p\u003e`\n\n--------\n\n## pull(int|int[]|string|string[]|null $keyOrKeys, mixed $fallback): mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn the value of a given key and\ndelete the key.\n\n**Parameters:**\n- `int|int[]|string|string[]|null $keyOrKeys`\n- `TFallback $fallback`\n\n**Return:**\n- `mixed`\n\n--------\n\n## push(mixed $args): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPush one or more values onto the end of array at once.\n\n**Parameters:**\n- `array\u003cTKey, T\u003e ...$args`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with pushed elements to the end of array.\u003c/p\u003e`\n\n--------\n\n## randomImmutable(int|null $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet a random value from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1, 2, 3, 4])-\u003erandomImmutable(2); // e.g.: Arrayy[1, 4]\n\u003c/code\u003e\n\n**Parameters:**\n- `int|null $number \u003cp\u003eHow many values you will take?\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## randomKey(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPick a random key/index from the keys of this array.\n\nEXAMPLE: \u003ccode\u003e\n$arrayy = A::create([1 =\u003e 'one', 2 =\u003e 'two']);\n$arrayy-\u003erandomKey(); // e.g. 2\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003eGet a key/index or null if there wasn't a key/index.\u003c/p\u003e`\n\n--------\n\n## randomKeys(int $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPick a given number of random keys/indexes out of this array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'one', 2 =\u003e 'two'])-\u003erandomKeys(); // e.g. Arrayy[1, 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `int $number \u003cp\u003eThe number of keys/indexes (should be \u003c= \\count($this-\u003earray))\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## randomMutable(int|null $number): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet a random value from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1, 2, 3, 4])-\u003erandomMutable(2); // e.g.: Arrayy[1, 4]\n\u003c/code\u003e\n\n**Parameters:**\n- `int|null $number \u003cp\u003eHow many values you will take?\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## randomValue(): mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPick a random value from the values of this array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'one', 2 =\u003e 'two'])-\u003erandomValue(); // e.g. 'one'\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed \u003cp\u003eGet a random value or null if there wasn't a value.\u003c/p\u003e`\n\n--------\n\n## randomValues(int $number): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPick a given number of random values out of this array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'one', 2 =\u003e 'two'])-\u003erandomValues(); // e.g. Arrayy['one', 'two']\n\u003c/code\u003e\n\n**Parameters:**\n- `int $number`\n\n**Return:**\n- `static \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## randomWeighted(array $array, int $number): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `array $array`\n- `int $number`\n\n**Return:**\n- `self`\n\n--------\n\n## reduce(callable $callable, mixed $initial): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReduce the current array via callable e.g. anonymous-function and return the end result.\n\nEXAMPLE: \u003ccode\u003e\na([1, 2, 3, 4])-\u003ereduce(\n    function ($carry, $item) {\n        return $carry * $item;\n    },\n    1\n); // Arrayy[24]\n\u003c/code\u003e\n\n**Parameters:**\n- `callable $callable`\n- `T2 $initial`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## reduce_dimension(bool $unique): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `bool $unique`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## reindex(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate a numerically re-indexed Arrayy object.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 1, 3 =\u003e 2])-\u003ereindex(); // Arrayy[0 =\u003e 1, 1 =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with re-indexed array-elements.\u003c/p\u003e`\n\n--------\n\n## reject(\\Closure $closure): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn all items that fail the truth test.\n\nEXAMPLE: \u003ccode\u003e\n$closure = function ($value) {\n    return $value % 2 !== 0;\n}\na([1, 2, 3, 4])-\u003ereject($closure); // Arrayy[1 =\u003e 2, 3 =\u003e 4]\n\u003c/code\u003e\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## remove(mixed $key): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nRemove a value from the current array (optional using dot-notation).\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'bar', 'foo' =\u003e 'foo'])-\u003eremove(1); // Arrayy['foo' =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `TKey|TKey[] $key`\n\n**Return:**\n- `static \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## removeElement(mixed $element): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003eremoveValue()\"\n\n**Parameters:**\n- `T $element`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## removeFirst(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nRemove the first value from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'bar', 'foo' =\u003e 'foo'])-\u003eremoveFirst(); // Arrayy['foo' =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## removeLast(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nRemove the last value from the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'bar', 'foo' =\u003e 'foo'])-\u003eremoveLast(); // Arrayy[1 =\u003e 'bar']\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## removeValue(mixed $value): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nRemoves a particular value from an array (numeric or associative).\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'bar', 'foo' =\u003e 'foo'])-\u003eremoveValue('foo'); // Arrayy[1 =\u003e 'bar']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $value`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## repeat(int $times): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGenerate array of repeated arrays.\n\n**Parameters:**\n- `int $times \u003cp\u003eHow many times has to be repeated.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## replace(mixed $oldKey, mixed $newKey, mixed $newValue): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReplace a key with a new key/value pair.\n\nEXAMPLE: \u003ccode\u003e\n$arrayy = a([1 =\u003e 'foo', 2 =\u003e 'foo2', 3 =\u003e 'bar']);\n$arrayy-\u003ereplace(2, 'notfoo', 'notbar'); // Arrayy[1 =\u003e 'foo', 'notfoo' =\u003e 'notbar', 3 =\u003e 'bar']\n\u003c/code\u003e\n\n**Parameters:**\n- `TKey $oldKey`\n- `TKey $newKey`\n- `T $newValue`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## replaceAllKeys(int[]|string[] $keys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an array using the current array as values and the other array as keys.\n\nEXAMPLE: \u003ccode\u003e\n$firstArray = [\n    1 =\u003e 'one',\n    2 =\u003e 'two',\n    3 =\u003e 'three',\n];\n$secondArray = [\n    'one' =\u003e 1,\n    1     =\u003e 'one',\n    2     =\u003e 2,\n];\n$arrayy = a($firstArray);\n$arrayy-\u003ereplaceAllKeys($secondArray); // Arrayy[1 =\u003e \"one\", 'one' =\u003e \"two\", 2 =\u003e \"three\"]\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cTKey\u003e $keys \u003cp\u003eAn array of keys.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Arrayy object with keys from the other array, empty Arrayy object if the number of elements\nfor each array isn't equal or if the arrays are empty.\n\u003c/p\u003e`\n\n--------\n\n## replaceAllValues(array $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCreate an array using the current array as keys and the other array as values.\n\nEXAMPLE: \u003ccode\u003e\n$firstArray = [\n    1 =\u003e 'one',\n    2 =\u003e 'two',\n    3 =\u003e 'three',\n];\n$secondArray = [\n    'one' =\u003e 1,\n    1     =\u003e 'one',\n    2     =\u003e 2,\n];\n$arrayy = a($firstArray);\n$arrayy-\u003ereplaceAllValues($secondArray); // Arrayy['one' =\u003e 1, 'two' =\u003e 'one', 'three' =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `array $array \u003cp\u003eAn array of values.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Arrayy object with values from the other array, empty Arrayy object if the number of elements\nfor each array isn't equal or if the arrays are empty.\n\u003c/p\u003e`\n\n--------\n\n## replaceKeys(array $keys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReplace the keys in an array with another set.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'bar', 'foo' =\u003e 'foo'])-\u003ereplaceKeys([1 =\u003e 2, 'foo' =\u003e 'replaced']); // Arrayy[2 =\u003e 'bar', 'replaced' =\u003e 'foo']\n\u003c/code\u003e\n\n**Parameters:**\n- `array\u003cTKey\u003e $keys \u003cp\u003eAn array of keys matching the array's size.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## replaceOneValue(mixed $search, mixed $replacement): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReplace the first matched value in an array.\n\nEXAMPLE: \u003ccode\u003e\n$testArray = ['bar', 'foo' =\u003e 'foo', 'foobar' =\u003e 'foobar'];\na($testArray)-\u003ereplaceOneValue('foo', 'replaced'); // Arrayy['bar', 'foo' =\u003e 'replaced', 'foobar' =\u003e 'foobar']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $search \u003cp\u003eThe value to replace.\u003c/p\u003e`\n- `T $replacement \u003cp\u003eThe value to replace.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## replaceValues(string $search, string $replacement): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReplace values in the current array.\n\nEXAMPLE: \u003ccode\u003e\n$testArray = ['bar', 'foo' =\u003e 'foo', 'foobar' =\u003e 'foobar'];\na($testArray)-\u003ereplaceValues('foo', 'replaced'); // Arrayy['bar', 'foo' =\u003e 'replaced', 'foobar' =\u003e 'replacedbar']\n\u003c/code\u003e\n\n**Parameters:**\n- `string $search \u003cp\u003eThe value to replace.\u003c/p\u003e`\n- `string $replacement \u003cp\u003eWhat to replace it with.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## rest(int $from): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the last elements from index $from until the end of this array.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 'foo', 3 =\u003e 'bar', 4 =\u003e 'lall'])-\u003erest(2); // Arrayy[0 =\u003e 'lall']\n\u003c/code\u003e\n\n**Parameters:**\n- `int $from`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## reverse(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn the array in the reverse order.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 1, 2 =\u003e 2, 3 =\u003e 3])-\u003ereverse(); // self[3, 2, 1]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## reverseKeepIndex(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn the array with keys in the reverse order.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 1, 2 =\u003e 2, 3 =\u003e 3])-\u003ereverse(); // self[3 =\u003e 3, 2 =\u003e 2, 1 =\u003e 1]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## rsort(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array in reverse order.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## rsortImmutable(int $sort_flags): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort an array in reverse order.\n\n**Parameters:**\n- `int $sort_flags [optional] \u003cp\u003e\nYou may modify the behavior of the sort using the optional\nparameter sort_flags, for details\nsee sort.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## searchIndex(mixed $value): false|int|string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSearch for the first index of the current array via $value.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e 'bàř', 'lall' =\u003e 'bàř'])-\u003esearchIndex('bàř'); // Arrayy[0 =\u003e 'fòô']\n\u003c/code\u003e\n\n**Parameters:**\n- `T $value`\n\n**Return:**\n- `false|int|string \u003cp\u003eWill return \u003cb\u003eFALSE\u003c/b\u003e if the value can't be found.\u003c/p\u003e`\n\n--------\n\n## searchValue(mixed $index): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSearch for the value of the current array via $index.\n\nEXAMPLE: \u003ccode\u003e\na(['fòô' =\u003e 'bàř'])-\u003esearchValue('fòô'); // Arrayy[0 =\u003e 'bàř']\n\u003c/code\u003e\n\n**Parameters:**\n- `TKey $index`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Will return a empty Arrayy if the value wasn't found.\u003c/p\u003e`\n\n--------\n\n## serialize(): string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSerialize the current \"Arrayy\"-object.\n\nEXAMPLE: \u003ccode\u003e\na([1, 4, 7])-\u003eserialize();\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `string`\n\n--------\n\n## set(string $key, mixed $value): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSet a value for the current array (optional using dot-notation).\n\nEXAMPLE: \u003ccode\u003e\n$arrayy = a(['Lars' =\u003e ['lastname' =\u003e 'Moelleken']]);\n$arrayy-\u003eset('Lars.lastname', 'Müller'); // Arrayy['Lars', ['lastname' =\u003e 'Müller']]]\n\u003c/code\u003e\n\n**Parameters:**\n- `TKey $key \u003cp\u003eThe key to set.\u003c/p\u003e`\n- `T $value \u003cp\u003eIts value.\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## setAndGet(mixed $key, mixed $fallback): mixed\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet a value from a array and set it if it was not.\n\nWARNING: this method only set the value, if the $key is not already set\n\nEXAMPLE: \u003ccode\u003e\n$arrayy = a([1 =\u003e 1, 2 =\u003e 2, 3 =\u003e 3]);\n$arrayy-\u003esetAndGet(1, 4); // 1\n$arrayy-\u003esetAndGet(0, 4); // 4\n\u003c/code\u003e\n\n**Parameters:**\n- `TKey $key \u003cp\u003eThe key\u003c/p\u003e`\n- `T $fallback \u003cp\u003eThe default value to set if it isn't.\u003c/p\u003e`\n\n**Return:**\n- `mixed \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## setFlags(int $flags): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `int $flags`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## setIteratorClass(string $iteratorClass): void\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSets the iterator classname for the current \"Arrayy\"-object.\n\n**Parameters:**\n- `class-string\u003c\\Arrayy\\ArrayyIterator\u003e $iteratorClass`\n\n**Return:**\n- `void`\n\n--------\n\n## shift(): mixed|null\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nShifts a specified value off the beginning of array.\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `mixed|null \u003cp\u003e(Mutable) A shifted element from the current array.\u003c/p\u003e`\n\n--------\n\n## shuffle(bool $secure, array|null $array): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nShuffle the current array.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 'bar', 'foo' =\u003e 'foo'])-\u003eshuffle(); // e.g.: Arrayy[['foo' =\u003e 'foo', 1 =\u003e 'bar']]\n\u003c/code\u003e\n\n**Parameters:**\n- `bool $secure \u003cp\u003eusing a CSPRNG | @see https://paragonie.com/b/JvICXzh_jhLyt4y3\u003c/p\u003e`\n- `array|null $array [optional]`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## size(int $mode): int\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCount the values from the current array.\n\nalias: for \"Arrayy-\u003ecount()\"\n\n**Parameters:**\n- `int $mode`\n\n**Return:**\n- `int`\n\n--------\n\n## sizeIs(int $size): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChecks whether array has exactly $size items.\n\n**Parameters:**\n- `int $size`\n\n**Return:**\n- `bool`\n\n--------\n\n## sizeIsBetween(int $fromSize, int $toSize): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChecks whether array has between $fromSize to $toSize items. $toSize can be\nsmaller than $fromSize.\n\n**Parameters:**\n- `int $fromSize`\n- `int $toSize`\n\n**Return:**\n- `bool`\n\n--------\n\n## sizeIsGreaterThan(int $size): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChecks whether array has more than $size items.\n\n**Parameters:**\n- `int $size`\n\n**Return:**\n- `bool`\n\n--------\n\n## sizeIsLessThan(int $size): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nChecks whether array has less than $size items.\n\n**Parameters:**\n- `int $size`\n\n**Return:**\n- `bool`\n\n--------\n\n## sizeRecursive(): int\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nCounts all elements in an array, or something in an object.\n\n\u003cp\u003e\nFor objects, if you have SPL installed, you can hook into count() by implementing interface {@see \\Countable}.\nThe interface has exactly one method, {@see \\Countable::count()}, which returns the return value for the count()\nfunction. Please see the {@see \\Array} section of the manual for a detailed explanation of how arrays are\nimplemented and used in PHP.\n\u003c/p\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `int \u003cp\u003e\nThe number of elements in var, which is\ntypically an array, since anything else will have one\nelement.\n\u003c/p\u003e\n\u003cp\u003e\nIf var is not an array or an object with\nimplemented Countable interface,\n1 will be returned.\nThere is one exception, if var is \u0026null;,\n0 will be returned.\n\u003c/p\u003e\n\u003cp\u003e\nCaution: count may return 0 for a variable that isn't set,\nbut it may also return 0 for a variable that has been initialized with an\nempty array. Use isset to test if a variable is set.\n\u003c/p\u003e`\n\n--------\n\n## slice(int $offset, int|null $length, bool $preserveKeys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nExtract a slice of the array.\n\n**Parameters:**\n- `int $offset \u003cp\u003eSlice begin index.\u003c/p\u003e`\n- `int|null $length \u003cp\u003eLength of the slice.\u003c/p\u003e`\n- `bool $preserveKeys \u003cp\u003eWhether array keys are preserved or no.\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) A slice of the original array with length $length.\u003c/p\u003e`\n\n--------\n\n## sort(int|string $direction, int $strategy, bool $keepKeys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the current array and optional you can keep the keys.\n\nEXAMPLE: \u003ccode\u003e\na(3 =\u003e 'd', 2 =\u003e 'f', 0 =\u003e 'a')-\u003esort(SORT_ASC, SORT_NATURAL, false); // Arrayy[0 =\u003e 'a', 1 =\u003e 'd', 2 =\u003e 'f']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or \u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003esort_flags =\u003e use e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n- `bool $keepKeys`\n\n**Return:**\n- `static \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## sortImmutable(int|string $direction, int $strategy, bool $keepKeys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the current array and optional you can keep the keys.\n\n**Parameters:**\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or \u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003esort_flags =\u003e use e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n- `bool $keepKeys`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## sortKeys(int|string $direction, int $strategy): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the current array by key.\n\nEXAMPLE: \u003ccode\u003e\na([1 =\u003e 2, 0 =\u003e 1])-\u003esortKeys(\\SORT_ASC); // Arrayy[0 =\u003e 1, 1 =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or \u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003euse e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## sortKeysImmutable(int|string $direction, int $strategy): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the current array by key.\n\n**Parameters:**\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or \u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003euse e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## sortValueKeepIndex(int|string $direction, int $strategy): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the current array by value.\n\nEXAMPLE: \u003ccode\u003e\na(3 =\u003e 'd', 2 =\u003e 'f', 0 =\u003e 'a')-\u003esortValueKeepIndex(SORT_ASC, SORT_REGULAR); // Arrayy[0 =\u003e 'a', 3 =\u003e 'd', 2 =\u003e 'f']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or \u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003euse e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## sortValueNewIndex(int|string $direction, int $strategy): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the current array by value.\n\nEXAMPLE: \u003ccode\u003e\na(3 =\u003e 'd', 2 =\u003e 'f', 0 =\u003e 'a')-\u003esortValueNewIndex(SORT_ASC, SORT_NATURAL); // Arrayy[0 =\u003e 'a', 1 =\u003e 'd', 2 =\u003e 'f']\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or \u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003euse e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## sorter(callable|mixed|null $sorter, int|string $direction, int $strategy): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort a array by value or by a closure.\n\n- If the sorter is null, the array is sorted naturally.\n- Associative (string) keys will be maintained, but numeric keys will be re-indexed.\n\nEXAMPLE: \u003ccode\u003e\n$testArray = range(1, 5);\n$under = a($testArray)-\u003esorter(\n    function ($value) {\n        return $value % 2 === 0;\n    }\n);\nvar_dump($under); // Arrayy[1, 3, 5, 2, 4]\n\u003c/code\u003e\n\n**Parameters:**\n- `callable|mixed|null $sorter`\n- `int|string $direction \u003cp\u003euse \u003cstrong\u003eSORT_ASC\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_DESC\u003c/strong\u003e\u003c/p\u003e`\n- `int $strategy \u003cp\u003euse e.g.: \u003cstrong\u003eSORT_REGULAR\u003c/strong\u003e (default) or\n\u003cstrong\u003eSORT_NATURAL\u003c/strong\u003e\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## splice(int $offset, int|null $length, array $replacement): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `int $offset`\n- `int|null $length`\n- `array\u003cT\u003e $replacement`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## split(int $numberOfPieces, bool $keepKeys): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSplit an array in the given amount of pieces.\n\nEXAMPLE: \u003ccode\u003e\na(['a' =\u003e 1, 'b' =\u003e 2])-\u003esplit(2, true); // Arrayy[['a' =\u003e 1], ['b' =\u003e 2]]\n\u003c/code\u003e\n\n**Parameters:**\n- `int $numberOfPieces`\n- `bool $keepKeys`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## stripEmpty(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nStrip all empty items from the current array.\n\nEXAMPLE: \u003ccode\u003e\na(['a' =\u003e 1, 'b' =\u003e ''])-\u003estripEmpty(); // Arrayy[['a' =\u003e 1]]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## swap(int|string $swapA, int|string $swapB): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSwap two values between positions by key.\n\nEXAMPLE: \u003ccode\u003e\na(['a' =\u003e 1, 'b' =\u003e ''])-\u003eswap('a', 'b'); // Arrayy[['a' =\u003e '', 'b' =\u003e 1]]\n\u003c/code\u003e\n\n**Parameters:**\n- `int|string $swapA \u003cp\u003ea key in the array\u003c/p\u003e`\n- `int|string $swapB \u003cp\u003ea key in the array\u003c/p\u003e`\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## toArray(bool $convertAllArrayyElements, bool $preserveKeys): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object.\n\nalias for \"getArray()\"\n\n**Parameters:**\n- `bool $convertAllArrayyElements \u003cp\u003e\nConvert all Child-\"Arrayy\" objects also to arrays.\n\u003c/p\u003e`\n- `bool $preserveKeys \u003cp\u003e\ne.g.: A generator maybe return the same key more than once,\nso maybe you will ignore the keys.\n\u003c/p\u003e`\n\n**Return:**\n- `array`\n\n--------\n\n## toJson(int $options, int $depth): string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nConvert the current array to JSON.\n\nEXAMPLE: \u003ccode\u003e\na(['bar', ['foo']])-\u003etoJson(); // '[\"bar\",{\"1\":\"foo\"}]'\n\u003c/code\u003e\n\n**Parameters:**\n- `int $options [optional] \u003cp\u003ee.g. JSON_PRETTY_PRINT\u003c/p\u003e`\n- `int $depth [optional] \u003cp\u003eSet the maximum depth. Must be greater than zero.\u003c/p\u003e`\n\n**Return:**\n- `string`\n\n--------\n\n## toList(bool $convertAllArrayyElements): array\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet the current array from the \"Arrayy\"-object as list.\n\n**Parameters:**\n- `bool $convertAllArrayyElements \u003cp\u003e\nConvert all Child-\"Arrayy\" objects also to arrays.\n\u003c/p\u003e`\n\n**Return:**\n- `array`\n\n--------\n\n## toPermutation(string[]|null $items, string[] $helper): static|static[]\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `string[]|null $items [optional]`\n- `string[] $helper [optional]`\n\n**Return:**\n- `static|static[]`\n\n--------\n\n## toString(string $separator): string\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nImplodes array to a string with specified separator.\n\n**Parameters:**\n- `string $separator [optional] \u003cp\u003eThe element's separator.\u003c/p\u003e`\n\n**Return:**\n- `string \u003cp\u003eThe string representation of array, separated by \",\".\u003c/p\u003e`\n\n--------\n\n## uasort(callable $callable): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries with a user-defined comparison function and maintain key association.\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## uasortImmutable(callable $callable): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries with a user-defined comparison function and maintain key association.\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `$this \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## uksort(callable $callable): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries by keys using a user-defined comparison function.\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `static \u003cp\u003e(Mutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## uksortImmutable(callable $callable): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nSort the entries by keys using a user-defined comparison function.\n\n**Parameters:**\n- `callable $callable`\n\n**Return:**\n- `static \u003cp\u003e(Immutable) Return this Arrayy object.\u003c/p\u003e`\n\n--------\n\n## unique(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nalias: for \"Arrayy-\u003euniqueNewIndex()\"\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Mutable) Return this Arrayy object, with the appended values.\u003c/p\u003e`\n\n--------\n\n## uniqueKeepIndex(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn a duplicate free copy of the current array. (with the old keys)\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 1, 3 =\u003e 2, 4 =\u003e 2])-\u003euniqueNewIndex(); // Arrayy[2 =\u003e 1, 3 =\u003e 2]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## uniqueNewIndex(): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturn a duplicate free copy of the current array.\n\nEXAMPLE: \u003ccode\u003e\na([2 =\u003e 1, 3 =\u003e 2, 4 =\u003e 2])-\u003euniqueNewIndex(); // Arrayy[1, 2]\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `$this \u003cp\u003e(Mutable)\u003c/p\u003e`\n\n--------\n\n## unserialize(string $string): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nUnserialize an string and return the instance of the \"Arrayy\"-class.\n\nEXAMPLE: \u003ccode\u003e\n$serialized = a([1, 4, 7])-\u003eserialize();\na()-\u003eunserialize($serialized);\n\u003c/code\u003e\n\n**Parameters:**\n- `string $string`\n\n**Return:**\n- `$this`\n\n--------\n\n## unshift(mixed $args): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nPrepends one or more values to the beginning of array at once.\n\n**Parameters:**\n- `array\u003cTKey, T\u003e ...$args`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with prepended elements to the beginning of array.\u003c/p\u003e`\n\n--------\n\n## validate(\\Closure $closure): bool\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nTests whether the given closure return something valid for all elements of this array.\n\n**Parameters:**\n- `\\Closure(T , TKey ): bool $closure the predicate`\n\n**Return:**\n- `bool \u003cp\u003eTRUE, if the predicate yields TRUE for all elements, FALSE otherwise.\u003c/p\u003e`\n\n--------\n\n## values(): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nGet all values from a array.\n\nEXAMPLE: \u003ccode\u003e\n$arrayy = a([1 =\u003e 'foo', 2 =\u003e 'foo2', 3 =\u003e 'bar']);\n$arrayyTmp-\u003evalues(); // Arrayy[0 =\u003e 'foo', 1 =\u003e 'foo2', 2 =\u003e 'bar']\n\u003c/code\u003e\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `static \u003cp\u003e(Immutable)\u003c/p\u003e`\n\n--------\n\n## walk(callable $callable, bool $recursive, mixed $userData): $this\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nApply the given function to every element in the array, discarding the results.\n\nEXAMPLE: \u003ccode\u003e\n$callable = function (\u0026$value, $key) {\n    $value = $key;\n};\n$arrayy = a([1, 2, 3]);\n$arrayy-\u003ewalk($callable); // Arrayy[0, 1, 2]\n\u003c/code\u003e\n\n**Parameters:**\n- `callable $callable`\n- `bool $recursive [optional] \u003cp\u003eWhether array will be walked recursively or no\u003c/p\u003e`\n- `mixed $userData [optional] \u003cp\u003e\nIf the optional $userData parameter is supplied,\nit will be passed as the third parameter to the $callable.\n\u003c/p\u003e`\n\n**Return:**\n- `$this \u003cp\u003e(Mutable) Return this Arrayy object, with modified elements.\u003c/p\u003e`\n\n--------\n\n## where(string $keyOrPropertyOrMethod, mixed $value): static\n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\nReturns a collection of matching items.\n\n**Parameters:**\n- `string $keyOrPropertyOrMethod \u003cp\u003eThe property or method to evaluate.\u003c/p\u003e`\n- `mixed $value \u003cp\u003eThe value to match.\u003c/p\u003e`\n\n**Return:**\n- `static`\n\n--------\n\n\n---\n\n\u003cp id=\"voku-php-readme-class-methods\"\u003e\u003c/p\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#appendnullmixed-value\"\u003eappend\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#asortint-flags\"\u003easort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#count\"\u003ecount\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#exchangearrayarrayobject-array\"\u003eexchangeArray\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#getarraycopy\"\u003egetArrayCopy\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getflags\"\u003egetFlags\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getiterator\"\u003egetIterator\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#getiteratorclass\"\u003egetIteratorClass\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#ksortint-flags\"\u003eksort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#natcasesort\"\u003enatcasesort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#natsort\"\u003enatsort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#offsetexistsnullmixed-key\"\u003eoffsetExists\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#offsetgetnullmixed-key\"\u003eoffsetGet\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#offsetsetnullmixed-key-nullmixed-value\"\u003eoffsetSet\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#offsetunsetnullmixed-key\"\u003eoffsetUnset\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#serialize\"\u003eserialize\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#setflagsint-flags\"\u003esetFlags\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#setiteratorclassstring-iteratorclass\"\u003esetIteratorClass\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uasortcallable-callback\"\u003euasort\u003c/a\u003e\n\u003c/td\u003e\u003ctd\u003e\u003ca href=\"#uksortcallable-callback\"\u003euksort\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ca href=\"#unserializestring-data\"\u003eunserialize\u003c/a\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n## append(null|mixed $value): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `null|mixed $value`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## asort(int $flags): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `int $flags`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## count(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## exchangeArray(array|object $array): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `array|object $array`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## getArrayCopy(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## getFlags(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## getIterator(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## getIteratorClass(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## ksort(int $flags): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `int $flags`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## natcasesort(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## natsort(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## offsetExists(null|mixed $key): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `null|mixed $key`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## offsetGet(null|mixed $key): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `null|mixed $key`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## offsetSet(null|mixed $key, null|mixed $value): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `null|mixed $key`\n- `null|mixed $value`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## offsetUnset(null|mixed $key): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `null|mixed $key`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## serialize(): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n__nothing__\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## setFlags(int $flags): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `int $flags`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## setIteratorClass(string $iteratorClass): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `string $iteratorClass`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## uasort(callable $callback): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `callable $callback`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## uksort(callable $callback): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `callable $callback`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n## unserialize(string $data): \n\u003ca href=\"#voku-php-readme-class-methods\"\u003e↑\u003c/a\u003e\n\n\n**Parameters:**\n- `string $data`\n\n**Return:**\n- `TODO: __not_detected__`\n\n--------\n\n\n\n## Support\n\nFor support and donations please visit [Github](https://github.com/voku/Arrayy/) | [Issues](https://github.com/voku/Arrayy/issues) | [PayPal](https://paypal.me/moelleken) | [Patreon](https://www.patreon.com/voku).\n\nFor status updates and release announcements please visit [Releases](https://github.com/voku/Arrayy/releases) | [Twitter](https://twitter.com/suckup_de) | [Patreon](https://www.patreon.com/voku/posts).\n\nFor professional support please contact [me](https://about.me/voku).\n\n## Thanks\n\n- Thanks to [GitHub](https://github.com) (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.\n- Thanks to [IntelliJ](https://www.jetbrains.com) as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!\n- Thanks to [Travis CI](https://travis-ci.com/) for being the most awesome, easiest continous integration tool out there!\n- Thanks to [StyleCI](https://styleci.io/) for the simple but powerfull code style check.\n- Thanks to [PHPStan](https://github.com/phpstan/phpstan) \u0026\u0026 [Psalm](https://github.com/vimeo/psalm) for relly great Static analysis tools and for discover bugs in the code!\n\n## Tests\n\nFrom the project directory, tests can be ran using `phpunit`\n\n## License\n\nReleased under the MIT License - see `LICENSE.txt` for details.\n","funding_links":["https://github.com/sponsors/voku","https://patreon.com/voku","https://opencollective.com/arrayy","https://tidelift.com/funding/github/packagist/voku/arrayy","https://www.paypal.me/moelleken","https://www.patreon.com/voku","https://paypal.me/moelleken","https://www.patreon.com/voku/posts"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoku%2Farrayy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoku%2Farrayy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoku%2Farrayy/lists"}