Yii2 Helpers
This extension is a collection of useful helper functions for Yii Framework 2.0., (*1)
, (*2)
Installation
The preferred way to install this extension is through composer., (*3)
Either run, (*4)
php composer.phar require --prefer-dist yii2mod/yii2-helpers "*"
or add, (*5)
"yii2mod/yii2-helpers": "*"
to the require section of your composer.json
file., (*6)
Available Methods
- add()
- average()
- collapse()
- except()
- has()
- first()
- flatten()
- last()
- only()
- pluck()
- prepend()
- pull()
- set()
- sort()
- sortRecursive()
- where()
- xmlStrToArray()
Method Listing
add()
Add a given key / value pair to the array if the given key doesn't already exist in the array:, (*7)
$array = ArrayHelper::add(['card' => 'Visa'], 'price', 200);
// ['card' => 'Visa', 'price' => 200]
average()
Get the average value of a given key:, (*8)
ArrayHelper::average([1, 2, 3, 4, 5]);
// 3
You may also pass a key to the average method:, (*9)
$array = [
['score' => 10],
['score' => 30],
['score' => 50],
];
ArrayHelper::average($array, 'score');
// 30
collapse()
Collapse an array of arrays into a single array:, (*10)
$array = ArrayHelper::collapse([[1, 2, 3], [4, 5, 6]]);
// [1, 2, 3, 4, 5, 6]
except()
Get all of the given array except for a specified array of items:, (*11)
$array = ['name' => 'Desk', 'price' => 100];
$array = ArrayHelper::except($array, ['price']);
// ['name' => 'Desk']
has()
Check if an item exists in an array using "dot" notation:, (*12)
$array = ['products' => ['desk' => ['price' => 100]]];
$hasDesk = ArrayHelper::has($array, 'products.desk');
// true
first()
Return the first element in an array passing a given truth test:, (*13)
$array = [100, 200, 300];
$value = ArrayHelper::first($array); // 100
// or apply custom callback
$value = ArrayHelper::first($array, function($key, $value) {
return $value >= 150; // 200
});
flatten()
Flatten a multi-dimensional array into a single level:, (*14)
$array = ['name' => 'Bob', 'languages' => ['PHP', 'Python']];
$array = ArrayHelper::flatten($array);
// ['Bob', 'PHP', 'Python'];
last()
Return the last element in an array passing a given truth test:, (*15)
$array = [100, 200, 300];
$value = ArrayHelper::last($array); // 300
// or apply custom callback
$value = ArrayHelper::last($array, function($key, $value) {
return $value; // 300
});
only()
Get a subset of the items from the given array:, (*16)
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$array = ArrayHelper::only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]
prepend()
Push an item onto the beginning of an array:, (*17)
$array = ['one', 'two', 'three', 'four'];
$array = ArrayHelper::prepend($array, 'zero');
// $array: ['zero', 'one', 'two', 'three', 'four']
pluck()
The function retrieves all of the collection values for a given key:, (*18)
$array = [
['product_id' => 'prod-100', 'name' => 'Desk'],
['product_id' => 'prod-200', 'name' => 'Chair'],
];
$plucked = ArrayHelper::pluck($array, 'name');
// ['Desk', 'Chair']
You may also specify how you wish the resulting collection to be keyed:, (*19)
$plucked = ArrayHelper::pluck($array, 'name', 'product_id');
// ['prod-100' => 'Desk', 'prod-200' => 'Chair']
pull()
Get a value from the array, and remove it:, (*20)
$array = ['name' => 'Desk', 'price' => 100];
$name = ArrayHelper::pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]
set()
Set an array item to a given value using "dot" notation:, (*21)
$array = ['products' => ['desk' => ['price' => 100]]];
ArrayHelper::set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
sort()
Sort the array using the given callback:, (*22)
$array = [
['name' => 'Desk'],
['name' => 'Chair'],
];
$array = ArrayHelper::sort($array, function ($value) {
return $value['name'];
});
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
]
*/
sortRecursive()
Recursively sort an array by keys and values:, (*23)
$array = [
[
'Desc',
'Chair',
],
[
'PHP',
'Ruby',
'JavaScript',
],
];
$array = ArrayHelper::sortRecursive($array);
/*
[
[
'Chair',
'Desc',
],
[
'JavaScript',
'PHP',
'Ruby',
]
];
*/
where()
Filter the array using the given Closure.:, (*24)
$array = ["100", 200, "300"];
$value = ArrayHelper::where($array, function($key, $value) {
return is_string($value);
});
// Will be return Array ( [0] => 100 [2] => 300 );
xmlStrToArray()
Convert xml string to array., (*25)
$xml = '
<root>
<id>1</id>
<name>Bob</name>
</root>';
ArrayHelper::xmlStrToArray($xml)
// ['id' => 1, 'name' => 'Bob']
StringHelper
-
StringHelper::removeStopWords('some text');
- remove stop words from string
-
StringHelper::removePunctuationSymbols('some text');
- Remove punctuation symbols from string