PHPackages                             jimphle/data-structure - 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. jimphle/data-structure

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

jimphle/data-structure
======================

Jimdo PHP library extraction of data-structure component

v0.5.0(8y ago)0450[1 issues](https://github.com/Jimdo/jimphle-data-structure/issues)[2 PRs](https://github.com/Jimdo/jimphle-data-structure/pulls)1MITPHPPHP &gt;=5.6.0CI passing

Since Feb 16Pushed 4w ago112 watchersCompare

[ Source](https://github.com/Jimdo/jimphle-data-structure)[ Packagist](https://packagist.org/packages/jimphle/data-structure)[ Docs](https://github.com/Jimdo/jimphle-data-structure)[ RSS](/packages/jimphle-data-structure/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (1)Dependencies (1)Versions (8)Used By (1)

Jimphle-data-structure
======================

[](#jimphle-data-structure)

Jimdo PHP library extraction of data-structure component.

This comes with a Map and a Vector and a Null implementation of the BaseInterface. Facts:

- Immutable
- Throws InvalidPropertyException on none-existing keys
- Is able convert complete trees of different data structures to json
- Is sometimes not very efficient. For example the fromArray method uses the Vector::isSequentialList check which copies the complete array in memory

A Vector is a representation of an array with sequential numeric indexes:

```
$vector = new \Jimphle\DataStructure\Vector(
    array(
        'foo',
        'bar'
    )
);

echo $vector[1];
```

A Map is a representation of an array with key and value:

```
$map = new \Jimphle\DataStructure\Map(
    array(
        'foo' => 'bar'
    )
);
echo $map->foo;

$map = new \Jimphle\DataStructure\Map(
    array(
        'foo-1' => 'bar'
    )
);
echo $map['foo-1'];
```

Convert an object tree to json:

```
$map = new \Jimphle\DataStructure\Map(
    array(
        'who?' => new \Jimphle\DataStructure\Vector(
            array(
                new Jimphle\DataStructure\Map(
                    array(
                        'foo' => 'bar'
                    )
                )
            )
        )
    )
);
echo $map->toJson();
```

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance62

Regular maintenance activity

Popularity14

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~320 days

Total

5

Last Release

3233d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/289073?v=4)[Joscha Meyer](/maintainers/schnipseljagd)[@schnipseljagd](https://github.com/schnipseljagd)

---

Top Contributors

[![schnipseljagd](https://avatars.githubusercontent.com/u/289073?v=4)](https://github.com/schnipseljagd "schnipseljagd (10 commits)")[![MorrisJobke](https://avatars.githubusercontent.com/u/245432?v=4)](https://github.com/MorrisJobke "MorrisJobke (7 commits)")[![desouradeep](https://avatars.githubusercontent.com/u/1932760?v=4)](https://github.com/desouradeep "desouradeep (2 commits)")[![bracki](https://avatars.githubusercontent.com/u/49786?v=4)](https://github.com/bracki "bracki (1 commits)")[![Partyschaum](https://avatars.githubusercontent.com/u/626843?v=4)](https://github.com/Partyschaum "Partyschaum (1 commits)")

---

Tags

owner-team-creatorvectormapdata structure

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jimphle-data-structure/health.svg)

```
[![Health](https://phpackages.com/badges/jimphle-data-structure/health.svg)](https://phpackages.com/packages/jimphle-data-structure)
```

###  Alternatives

[markbaker/matrix

PHP Class for working with matrices

1.5k295.1M39](/packages/markbaker-matrix)[phpcollection/phpcollection

General-Purpose Collection Library for PHP

96864.5M34](/packages/phpcollection-phpcollection)[dasprid/enum

PHP 7.1 enum implementation

382158.8M12](/packages/dasprid-enum)[marc-mabe/php-enum

Simple and fast implementation of enumerations with native PHP

49753.5M104](/packages/marc-mabe-php-enum)[aimeos/map

Easy and elegant handling of PHP arrays as array-like collection objects similar to jQuery and Laravel Collections

4.3k443.7k14](/packages/aimeos-map)[spatie/geocoder

Geocoding addresses to coordinates

8425.0M19](/packages/spatie-geocoder)

PHPackages © 2026

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