{"id":18983399,"url":"https://github.com/petrgrishin/array-map","last_synced_at":"2025-07-05T21:39:13.609Z","repository":{"id":17568972,"uuid":"20372373","full_name":"petrgrishin/array-map","owner":"petrgrishin","description":"PHP. The object oriented approach to working with arrays","archived":false,"fork":false,"pushed_at":"2018-08-05T19:27:42.000Z","size":19,"stargazers_count":12,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-23T18:15:06.594Z","etag":null,"topics":["array","map","php"],"latest_commit_sha":null,"homepage":"https://github.com/petrgrishin/array-map","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petrgrishin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-01T06:51:30.000Z","updated_at":"2023-10-21T18:16:37.000Z","dependencies_parsed_at":"2022-09-14T13:01:20.113Z","dependency_job_id":null,"html_url":"https://github.com/petrgrishin/array-map","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrgrishin%2Farray-map","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrgrishin%2Farray-map/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrgrishin%2Farray-map/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petrgrishin%2Farray-map/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petrgrishin","download_url":"https://codeload.github.com/petrgrishin/array-map/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249246230,"owners_count":21237012,"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","map","php"],"created_at":"2024-11-08T16:16:55.892Z","updated_at":"2025-04-16T13:33:44.707Z","avatar_url":"https://github.com/petrgrishin.png","language":"PHP","readme":"array-map\n=========\n[![Travis CI](https://travis-ci.org/petrgrishin/array-map.png \"Travis CI\")](https://travis-ci.org/petrgrishin/array-map)\n[![Coverage Status](https://coveralls.io/repos/petrgrishin/array-map/badge.png?branch=master)](https://coveralls.io/r/petrgrishin/array-map?branch=master)\n\nThe object oriented approach to working with arrays\n\nInstallation\n------------\nAdd a dependency to your project's composer.json:\n```json\n{\n    \"require\": {\n        \"petrgrishin/array-map\": \"~1.0\"\n    }\n}\n```\n\nUsage examples\n--------------\n#### Map\nUsing keys\n```php\n$array = ArrayMap::create($array)\n    -\u003emap(function ($value, $key) {\n        return array($key =\u003e $value);\n    })\n    -\u003egetArray();\n```\n\nSimple\n```php\n$array = ArrayMap::create($array)\n    -\u003emap(function ($value) {\n        return $value;\n    })\n    -\u003egetArray();\n```\n\n#### Merge\nRecursive merge\n```php\n$array = ArrayMap::create($array)\n    -\u003emergeWith(array(\n        1 =\u003e 1,\n        2 =\u003e 2,\n        3 =\u003e array(\n            1 =\u003e 1,\n            2 =\u003e 2,\n        ),\n    ))\n    -\u003egetArray();\n```\n\nOne level merge\n```php\n$array = ArrayMap::create($array)\n    -\u003emergeWith(array(\n        1 =\u003e 1,\n        2 =\u003e 2,\n    ), false)\n    -\u003egetArray();\n```\n\n#### Filtering\n```php\n$array = ArrayMap::create($array)\n    -\u003efilter(function ($value, $key) {\n        return $value \u003e 10 \u0026\u0026 $key \u003e 2;\n    })\n    -\u003egetArray();\n```\n\n#### User sort\nSort by value\n```php\n$array = ArrayMap::create($array)\n    -\u003euserSortByValue(function ($first, $second) {\n        return $first \u003c $second ? -1 : 1;\n    })\n    -\u003egetArray();\n```\n\nSort by key\n```php\n$array = ArrayMap::create($array)\n    -\u003euserSortByKey(function ($first, $second) {\n        return $first \u003c $second ? -1 : 1;\n    })\n    -\u003egetArray();\n```\n\nExample of use\n--------------\nArrayAccess class, multi array access — https://github.com/petrgrishin/array-access\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrgrishin%2Farray-map","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetrgrishin%2Farray-map","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetrgrishin%2Farray-map/lists"}