PHPackages                             mmamedov/array-property - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mmamedov/array-property

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mmamedov/array-property
=======================

Access arrays in an intuitive and object-oriented way. Keys and values are treated as properties.

v1.1(10y ago)019MITPHPPHP &gt;=5.5.0

Since May 14Pushed 9y ago1 watchersCompare

[ Source](https://github.com/mmamedov/array-property)[ Packagist](https://packagist.org/packages/mmamedov/array-property)[ RSS](/packages/mmamedov-array-property/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

[![Build Status](https://camo.githubusercontent.com/ac135a6c21d6a5fe6026bc35878f58f078e329cf1dfcd0d0acb5c2d58685877a/68747470733a2f2f7472617669732d63692e6f72672f6d6d616d65646f762f61727261792d70726f70657274792e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/mmamedov/array-property) [![Latest Stable Version](https://camo.githubusercontent.com/09c7cc307f8a3b81222cb94257267fcea351716e2efe546d2a618c84aad0d580/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d6d616d65646f762f61727261792d70726f70657274792e737667)](https://packagist.org/packages/mmamedov/array-property) [![License](https://camo.githubusercontent.com/9a5a4c9ca9fbb24165ac7c692cb4554b91cd8c11e792eefa37df73d3f81ef521/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d6d616d65646f762f61727261792d70726f70657274792e737667)](https://packagist.org/packages/mmamedov/array-property)

ArrayProperty
-------------

[](#arrayproperty)

Syntax sugar for working with arrays in PHP. Read and write to arrays in an object-oriented style. Keys are treated as properties.

ArrayProperty can be used on any PHP array variable.

Install using composer (recommended):

```
composer require mmamedov/array-property

```

Or manually add to your composer.json file:

```
"require": {
    "mmamedov/array-property": "^1.1"
}
```

Usage
-----

[](#usage)

Consider the following sample PHP array:

```
$sample =
    array(
        'app' => array(
            'log_dir' => '/log/path',
            'debug' => false,
            'log' => true,
            'version' => '2.3',
            'deep' => array(
                'inner' => 'some value',
                'level' => '2'
            )
        ),
        'my node' => 'some value'
    );
```

This is how easy to work with it using ArrayProperty:

```
$a = new ArrayProperty($sample);
echo $a->app->log_dir;      //outputs /log/path
echo $a->app->deep->inner;  //outputs 'some value'

//convert to array
$deep = $a->app->deep->toArray();
print_r($deep);             //outputs deep as array;

//check if value exists:
$a->app->exist('log_dir')   //returns true
```

Load new array and acces its values inline:

```
$prop = new ArrayProperty(array());
$new = array(1 => 'apple', 2 => 'orange', 3 => 'olive', 4 => 'grapes', 'multi'=>array('key'=>'value'));
echo $prop->loadArray($new)->{1}; //outputs "apple"
echo $prop->multi->key;           //outputs "value"
```

Now let's add new element to the `$prop` ArrayProperty object we created above:

```
$prop->myNewNode = "myValue";   //you can assign arrays as well.
echo $prop->myNewNode;          //outputs 'myValue';
//overwrite existing elements
$prop->{1} = "banana";
echo $prop->{1};                //now outputs "banana" instead of "apple"
```

Please note that multidimensional write is not supported, like in $prop-&gt;firstIndex-&gt;second = "value";

You can switch modes between OBJECT\_MODE and MIXED\_MODE(default). Mode is set as second parameter in the constructor, or by calling setMode() method. In MIXED\_MODE array values are returned in their original type, whereas in OBJECT\_MODE returned values are always ArrayProperty object:

```
$prop->setMode(ArrayProperty::OBJECT_MODE);
var_dump($prop->myNewNode);     //returns ArrayProperty object

$prop->setMode(ArrayProperty::MIXED_MODE);
var_dump($prop->myNewNode);     //returns "myValue" which was set before
```

For more examples see code inside [ArrayProperty examples](examples/) directory.

Enjoy!

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

3652d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2c80a55c2eec1d74e1fc77f406501e84017d2b77d6dbe6bfcf414d78bf2b02b6?d=identicon)[mmamedov](/maintainers/mmamedov)

---

Top Contributors

[![mmamedov](https://avatars.githubusercontent.com/u/3795429?v=4)](https://github.com/mmamedov "mmamedov (19 commits)")

---

Tags

arrayarraysarray-accessphp arraysarray property

### Embed Badge

![Health badge](/badges/mmamedov-array-property/health.svg)

```
[![Health](https://phpackages.com/badges/mmamedov-array-property/health.svg)](https://phpackages.com/packages/mmamedov-array-property)
```

###  Alternatives

[symfony/property-access

Provides functions to read and write from/to an object or array using a simple string notation

2.8k295.3M2.5k](/packages/symfony-property-access)[league/config

Define configuration arrays with strict schemas and access values with dot notation

564302.2M24](/packages/league-config)[minwork/array

Pack of advanced array functions specifically tailored for: associative (assoc) array, multidimensional array, array of objects and handling nested array elements

66256.1k5](/packages/minwork-array)[sarhan/php-flatten

Flattens multidimensional arrays, traversables and vars into one dimensional array.

21177.7k1](/packages/sarhan-php-flatten)[phootwork/lang

Missing PHP language constructs

1224.8M8](/packages/phootwork-lang)[dotty/dotty

Easy access to array data using dot notation

1293.8k1](/packages/dotty-dotty)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
