PHPackages                             joomla/utilities - 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. [Framework](/categories/framework)
4. /
5. joomla/utilities

ActiveJoomla-package[Framework](/categories/framework)

joomla/utilities
================

Joomla Utilities Package

4.0.0(9mo ago)4463.2k—4%11[1 issues](https://github.com/joomla-framework/utilities/issues)7GPL-2.0-or-laterPHPPHP ^8.3.0CI passing

Since Jun 4Pushed 9mo ago11 watchersCompare

[ Source](https://github.com/joomla-framework/utilities)[ Packagist](https://packagist.org/packages/joomla/utilities)[ Docs](https://github.com/joomla-framework/utilities)[ RSS](/packages/joomla-utilities/feed)WikiDiscussions 3.x-dev Synced 1mo ago

READMEChangelog (5)Dependencies (5)Versions (31)Used By (7)

The Utilities Package [![Build Status](https://github.com/joomla-framework/utilities/actions/workflows/ci.yml/badge.svg?branch=3.x-dev)](https://github.com/joomla-framework/utilities)
=======================================================================================================================================================================================

[](#the-utilities-package-)

[![Latest Stable Version](https://camo.githubusercontent.com/da988c77629843c51161d7c212d1cfdd5ffa36d6f515b3789db6bccadff05971/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f7574696c69746965732f762f737461626c65)](https://packagist.org/packages/joomla/utilities)[![Total Downloads](https://camo.githubusercontent.com/8a7aaff6832b1ce70793106e68bf575b0713f88b5304a3a2cd62492e4357b0cd/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f7574696c69746965732f646f776e6c6f616473)](https://packagist.org/packages/joomla/utilities)[![Latest Unstable Version](https://camo.githubusercontent.com/19214435e919bcd17fbd224dbaac032817678590a618db475827be8e562e5c27/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f7574696c69746965732f762f756e737461626c65)](https://packagist.org/packages/joomla/utilities)[![License](https://camo.githubusercontent.com/29766b5dac6cf1bf49b637730564509c24b600984fd3c5349f1592541be10299/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612f7574696c69746965732f6c6963656e7365)](https://packagist.org/packages/joomla/utilities)

Using ArrayHelper
-----------------

[](#using-arrayhelper)

### toInteger

[](#tointeger)

```
use Joomla\Utilities\ArrayHelper;

$input = array(
    "width" => "100",
    "height" => "200xxx",
    "length" => "10.3"
);
$result = ArrayHelper::toInteger($input);
var_dump($result);
```

Result:

```
array(3) {
  'width' =>
  int(100)
  'height' =>
  int(200)
  'length' =>
  int(10)
}

```

### toObject

[](#toobject)

```
use Joomla\Utilities\ArrayHelper;

class Book {
    public $name;
    public $author;
    public $genre;
    public $rating;
}
class Author {
    public $name;
    public $born;
}
$input = array(
    "name" => "The Hitchhiker's Guide to the Galaxy",
    "author" => array(
        "name" => "Douglas Adams",
        "born" => 1952,
        "died" => 2001),
    "genre" => "comic science fiction",
    "rating" => 10
);
$book = ArrayHelper::toObject($input, 'Book');
var_dump($book);
```

Result:

```
class Book#1 (4) {
  public $name =>
  string(36) "The Hitchhiker's Guide to the Galaxy"
  public $author =>
  class Book#2 (6) {
    public $name =>
    string(13) "Douglas Adams"
    public $author =>
    NULL
    public $genre =>
    NULL
    public $rating =>
    NULL
    public $born =>
    int(1952)
    public $died =>
    int(2001)
  }
  public $genre =>
  string(21) "comic science fiction"
  public $rating =>
  int(10)
}

```

### toString

[](#tostring)

```
use Joomla\Utilities\ArrayHelper;

$input = array(
    "fruit" => "apple",
    "pi" => 3.14
);
echo ArrayHelper::toString($input);
```

Result:

```
fruit="apple" pi="3.14"

```

### fromObject

[](#fromobject)

```
use Joomla\Utilities\ArrayHelper;

class Book {
    public $name;
    public $author;
    public $genre;
    public $rating;
}
class Author {
    public $name;
    public $born;
}

$book = new Book();
$book->name = "Harry Potter and the Philosopher's Stone";
$book->author = new Author();
$book->author->name = "J.K. Rowling";
$book->author->born = 1965;
$book->genre = "fantasy";
$book->rating = 10;

$array = ArrayHelper::fromObject($book);
var_dump($array);
```

Result:

```
array(4) {
  'name' =>
  string(40) "Harry Potter and the Philosopher's Stone"
  'author' =>
  array(2) {
    'name' =>
    string(12) "J.K. Rowling"
    'born' =>
    int(1965)
  }
  'genre' =>
  string(7) "fantasy"
  'rating' =>
  int(10)
}

```

### getColumn

[](#getcolumn)

```
use Joomla\Utilities\ArrayHelper;

$rows = array(
    array("name" => "John", "age" => 20),
    array("name" => "Alex", "age" => 35),
    array("name" => "Sarah", "age" => 27)
);
$names = ArrayHelper::getColumn($rows, 'name');
var_dump($names);
```

Result:

```
array(3) {
  [0] =>
  string(4) "John"
  [1] =>
  string(4) "Alex"
  [2] =>
  string(5) "Sarah"
}

```

### getValue

[](#getvalue)

```
use Joomla\Utilities\ArrayHelper;

$city = array(
    "name" => "Oslo",
    "country" => "Norway"
);

// Prints 'Oslo'
echo ArrayHelper::getValue($city, 'name');

// Prints 'unknown mayor' (no 'mayor' key is found in the array)
echo ArrayHelper::getValue($city, 'mayor', 'unknown mayor');
```

### invert

[](#invert)

```
use Joomla\Utilities\ArrayHelper;

$input = array(
    'New' => array('1000', '1500', '1750'),
    'Used' => array('3000', '4000', '5000', '6000')
);
$output = ArrayHelper::invert($input);
var_dump($output);
```

Result:

```
array(7) {
  [1000] =>
  string(3) "New"
  [1500] =>
  string(3) "New"
  [1750] =>
  string(3) "New"
  [3000] =>
  string(4) "Used"
  [4000] =>
  string(4) "Used"
  [5000] =>
  string(4) "Used"
  [6000] =>
  string(4) "Used"
}

```

### isAssociative

[](#isassociative)

```
use Joomla\Utilities\ArrayHelper;

$user = array("id" => 46, "name" => "John");
echo ArrayHelper::isAssociative($user) ? 'true' : 'false'; // true

$letters = array("a", "b", "c");
echo ArrayHelper::isAssociative($letters) ? 'true' : 'false'; // false
```

### pivot

[](#pivot)

```
use Joomla\Utilities\ArrayHelper;

$movies = array(
    array('year' => 1972, 'title' => 'The Godfather'),
    array('year' => 2000, 'title' => 'Gladiator'),
    array('year' => 2000, 'title' => 'Memento'),
    array('year' => 1964, 'title' => 'Dr. Strangelove')
);
$pivoted = ArrayHelper::pivot($movies, 'year');
var_dump($pivoted);
```

Result:

```
array(3) {
  [1972] =>
  array(2) {
    'year' =>
    int(1972)
    'title' =>
    string(13) "The Godfather"
  }
  [2000] =>
  array(2) {
    [0] =>
    array(2) {
      'year' =>
      int(2000)
      'title' =>
      string(9) "Gladiator"
    }
    [1] =>
    array(2) {
      'year' =>
      int(2000)
      'title' =>
      string(7) "Memento"
    }
  }
  [1964] =>
  array(2) {
    'year' =>
    int(1964)
    'title' =>
    string(15) "Dr. Strangelove"
  }
}

```

### sortObjects

[](#sortobjects)

```
use Joomla\Utilities\ArrayHelper;

$members = array(
    (object) array('first_name' => 'Carl', 'last_name' => 'Hopkins'),
    (object) array('first_name' => 'Lisa', 'last_name' => 'Smith'),
    (object) array('first_name' => 'Julia', 'last_name' => 'Adams')
);
$sorted = ArrayHelper::sortObjects($members, 'last_name', 1);
var_dump($sorted);
```

Result:

```
array(3) {
  [0] =>
  class stdClass#3 (2) {
    public $first_name =>
    string(5) "Julia"
    public $last_name =>
    string(5) "Adams"
  }
  [1] =>
  class stdClass#1 (2) {
    public $first_name =>
    string(4) "Carl"
    public $last_name =>
    string(7) "Hopkins"
  }
  [2] =>
  class stdClass#2 (2) {
    public $first_name =>
    string(4) "Lisa"
    public $last_name =>
    string(5) "Smith"
  }
}

```

### arrayUnique

[](#arrayunique)

```
use Joomla\Utilities\ArrayHelper;

$names = array(
    array("first_name" => "John", "last_name" => "Adams"),
    array("first_name" => "John", "last_name" => "Adams"),
    array("first_name" => "John", "last_name" => "Smith"),
    array("first_name" => "Sam", "last_name" => "Smith")
);
$unique = ArrayHelper::arrayUnique($names);
var_dump($unique);
```

Result:

```
array(3) {
  [0] =>
  array(2) {
    'first_name' =>
    string(4) "John"
    'last_name' =>
    string(5) "Adams"
  }
  [2] =>
  array(2) {
    'first_name' =>
    string(4) "John"
    'last_name' =>
    string(5) "Smith"
  }
  [3] =>
  array(2) {
    'first_name' =>
    string(3) "Sam"
    'last_name' =>
    string(5) "Smith"
  }
}

```

### flatten

[](#flatten)

```
use Joomla\Utilities\ArrayHelper;

$array = array(
    'flower' => array(
        'sakura' => 'samurai',
        'olive' => 'peace'
    )
);

// Flatten the nested array and separate the keys by a dot (".")
$flattenend1 = ArrayHelper::flatten($array);

echo $flattenend1['flower.sakura']; // 'samurai'

// Custom separator
$flattenend2 = ArrayHelper::flatten($array, '/');

echo $flattenend2['flower/olive']; // 'peace'
```

Installation via Composer
-------------------------

[](#installation-via-composer)

Add `"joomla/utilities": "~3.0"` to the require block in your composer.json and then run `composer install`.

```
{
	"require": {
		"joomla/utilities": "~3.0"
	}
}
```

Alternatively, you can simply run the following from the command line:

```
composer require joomla/utilities "~3.0"
```

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance50

Moderate activity, may be stable

Popularity44

Moderate usage in the ecosystem

Community33

Small or concentrated contributor base

Maturity89

Battle-tested with a long release history

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

Recently: every ~268 days

Total

27

Last Release

299d ago

Major Versions

1.6.1 → 2.0.0-beta2020-06-05

1.6.2 → 2.0.0-beta22021-06-03

2.0.1 → 3.0.02023-10-08

3.0.2 → 4.0.02025-07-23

PHP version history (8 changes)1.0-alphaPHP &gt;=5.3.10

1.4.1PHP ^5.3.10|~7.0

2.0.0-betaPHP ^7.2.5

1.6.2PHP ^5.3.10|~7.0|^8.0

2.0.0-beta2PHP ^7.2.5|^8.0

2.0.1PHP ^7.2.5|~8.0.0|~8.1.0

3.0.0PHP ^8.1.0

4.0.0PHP ^8.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/305a2164440014dcef9ac681c139fe5e8a1ce1d7a8c3b3cfb828497729a4c70e?d=identicon)[wilsonge](/maintainers/wilsonge)

---

Top Contributors

[![mbabker](https://avatars.githubusercontent.com/u/368545?v=4)](https://github.com/mbabker "mbabker (102 commits)")[![nibra](https://avatars.githubusercontent.com/u/827605?v=4)](https://github.com/nibra "nibra (37 commits)")[![Hackwar](https://avatars.githubusercontent.com/u/313866?v=4)](https://github.com/Hackwar "Hackwar (34 commits)")[![wilsonge](https://avatars.githubusercontent.com/u/1986000?v=4)](https://github.com/wilsonge "wilsonge (13 commits)")[![izharaazmi](https://avatars.githubusercontent.com/u/6706189?v=4)](https://github.com/izharaazmi "izharaazmi (10 commits)")[![asika32764](https://avatars.githubusercontent.com/u/1639206?v=4)](https://github.com/asika32764 "asika32764 (7 commits)")[![dongilbert](https://avatars.githubusercontent.com/u/718028?v=4)](https://github.com/dongilbert "dongilbert (7 commits)")[![joomla-jenkins](https://avatars.githubusercontent.com/u/929228?v=4)](https://github.com/joomla-jenkins "joomla-jenkins (5 commits)")[![PhilETaylor](https://avatars.githubusercontent.com/u/400092?v=4)](https://github.com/PhilETaylor "PhilETaylor (4 commits)")[![richard67](https://avatars.githubusercontent.com/u/7413183?v=4)](https://github.com/richard67 "richard67 (3 commits)")[![realityking](https://avatars.githubusercontent.com/u/628508?v=4)](https://github.com/realityking "realityking (2 commits)")[![brianteeman](https://avatars.githubusercontent.com/u/1296369?v=4)](https://github.com/brianteeman "brianteeman (2 commits)")[![SharkyKZ](https://avatars.githubusercontent.com/u/7325021?v=4)](https://github.com/SharkyKZ "SharkyKZ (2 commits)")[![rdeutz](https://avatars.githubusercontent.com/u/467356?v=4)](https://github.com/rdeutz "rdeutz (2 commits)")[![heelc29](https://avatars.githubusercontent.com/u/66922325?v=4)](https://github.com/heelc29 "heelc29 (2 commits)")[![alikon](https://avatars.githubusercontent.com/u/181681?v=4)](https://github.com/alikon "alikon (1 commits)")[![Achal-Aggarwal](https://avatars.githubusercontent.com/u/3330262?v=4)](https://github.com/Achal-Aggarwal "Achal-Aggarwal (1 commits)")[![eddieajau](https://avatars.githubusercontent.com/u/700871?v=4)](https://github.com/eddieajau "eddieajau (1 commits)")[![photodude](https://avatars.githubusercontent.com/u/10253980?v=4)](https://github.com/photodude "photodude (1 commits)")[![phproberto](https://avatars.githubusercontent.com/u/1119272?v=4)](https://github.com/phproberto "phproberto (1 commits)")

---

Tags

array-helperjoomlajoomla-frameworkphputilitiesframeworkjoomlautilities

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/joomla-utilities/health.svg)

```
[![Health](https://phpackages.com/badges/joomla-utilities/health.svg)](https://phpackages.com/packages/joomla-utilities)
```

###  Alternatives

[joomla/filter

Joomla Filter Package

151.4M8](/packages/joomla-filter)[joomla/application

Joomla Application Package

23404.8k11](/packages/joomla-application)[joomla/registry

Joomla Registry Package

16468.6k20](/packages/joomla-registry)[joomla/filesystem

Joomla Filesystem Package

12369.7k7](/packages/joomla-filesystem)[joomla/oauth2

Joomla OAuth2 Package

10303.1k2](/packages/joomla-oauth2)[joomla/router

Joomla Router Package

10285.4k1](/packages/joomla-router)

PHPackages © 2026

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