Util
, (*1)
DEPRECATED This package is not maintained anymore. Use solidworx/lodash-php instead, (*2)
A collection of utility classes for everyday use, (*3)
Table of Contents
Requirements
Minimum PHP requirement is PHP 7.1+, (*4)
Installation
Composer
$ composer require solidworx/util
Usage
ArrayUtil
column:, (*5)
Return the values from a single column in the input array. The input can be an array of arrays or objects.
This method is an enhancement to the normal array_column
function.
This can be useful if you need to get a specific value from a collection., (*6)
Using an array input, (*7)
<?php
$input = [
['test' => 'one'],
['test' => 'two'],
['test' => 'three'],
];
$columns = ArrayUtil::column($input, 'test');
/* $columns = array (
0 => 'one',
1 => 'two',
2 => 'three',
);*/
Using an object with public properties, (*8)
<?php
class Foo {
public $test;
}
$foo1 = new Foo;
$foo1->test = 'one';
$foo2 = new Foo;
$foo2->test = 'two';
$foo3 = new Foo;
$foo3->test = 'three';
$input = [
$foo1,
$foo2,
$foo3,
];
$columns = ArrayUtil::column($input, 'test');
/* $columns = array (
0 => 'one',
1 => 'two',
2 => 'three',
);*/
Using an object with methods, (*9)
<?php
class Foo {
private $value;
public function __construct($value)
{
$this->value = $value;
}
public function test()
{
return $this->>value;
}
}
$input = [
new Foo('one'),
new Foo('two'),
new Foo('three'),
];
$columns = ArrayUtil::column($input, 'test');
/* $columns = array (
0 => 'one',
1 => 'two',
2 => 'three',
);*/
Using an object with getters, (*10)
<?php
class Foo {
private $value;
public function __construct($value)
{
$this->value = $value;
}
public function getTest()
{
return $this->value;
}
}
$input = [
new Foo('one'),
new Foo('two'),
new Foo('three'),
];
$columns = ArrayUtil::column($input, 'test');
/* $columns = array (
0 => 'one',
1 => 'two',
2 => 'three',
);*/
Getting all the email addresses of your users:, (*11)
<?php
$users = $userRepository->findAll();
$emails = ArrayUtil::column($users, 'email');
By default, all the null
values are filtered out. If you want to keep the null
values, pass false
as the third parameter:, (*12)
$users = $userRepository->findAll();
$emails = ArrayUtil::column($users, 'email', false); // Will keep empty values in the result
Testing
To run the unit tests, execute the following command, (*13)
$ vendor/bin/phpunit
Contributing
See CONTRIBUTING, (*14)
License
This library is open-sourced software licensed under the MIT license, (*15)
Please see the LICENSE file for the full license., (*16)