joomla/utilities

Joomla Utilities Package

Package info

github.com/joomla-framework/utilities

Type:joomla-package

pkg:composer/joomla/utilities

Statistics

Installs: 511 062

Dependents: 14

Suggesters: 1

Stars: 3

Open Issues: 1

4.0.0 2025-07-23 18:52 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

GPL-2.0-or-later 5f234527f7dad7111830b091aef52787c3c07cc8

frameworkjoomlautilities


README

👁 Latest Stable Version
👁 Total Downloads
👁 Latest Unstable Version
👁 License

Using ArrayHelper

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

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

use Joomla\Utilities\ArrayHelper;

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

Result:

fruit="apple" pi="3.14"

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

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

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

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

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

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

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

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

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

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"