This extension is a collection of useful helper functions for Yii Framework 2.0.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist yii2mod/yii2-helpers "*"
or add
"yii2mod/yii2-helpers": "*"
to the require section of your composer.json
file.
- add()
- average()
- collapse()
- except()
- has()
- first()
- flatten()
- last()
- only()
- pluck()
- prepend()
- pull()
- set()
- sort()
- sortRecursive()
- where()
- xmlStrToArray()
#####add()
Add a given key / value pair to the array if the given key doesn't already exist in the array:
$array = ArrayHelper::add(['card' => 'Visa'], 'price', 200);
// ['card' => 'Visa', 'price' => 200]
#####average()
Get the average value of a given key:
ArrayHelper::average([1, 2, 3, 4, 5]);
// 3
You may also pass a key to the average method:
$array = [
['score' => 10],
['score' => 30],
['score' => 50],
];
ArrayHelper::average($array, 'score');
// 30
#####collapse()
Collapse an array of arrays into a single array:
$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:
$array = ['name' => 'Desk', 'price' => 100];
$array = ArrayHelper::except($array, ['price']);
// ['name' => 'Desk']
#####has()
Check if an item exists in an array using "dot" notation:
$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:
$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:
$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:
$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:
$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:
$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:
$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:
$plucked = ArrayHelper::pluck($array, 'name', 'product_id');
// ['prod-100' => 'Desk', 'prod-200' => 'Chair']
#####pull()
Get a value from the array, and remove it:
$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:
$array = ['products' => ['desk' => ['price' => 100]]];
ArrayHelper::set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
#####sort()
Sort the array using the given callback:
$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:
$array = [
[
'Desc',
'Chair',
],
[
'PHP',
'Ruby',
'JavaScript',
],
];
$array = ArrayHelper::sortRecursive($array);
/*
[
[
'Chair',
'Desc',
],
[
'JavaScript',
'PHP',
'Ruby',
]
];
*/
#####where()
Filter the array using the given Closure.:
$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.
$xml = '<?xml version="1.0"?>
<root>
<id>1</id>
<name>Bob</name>
</root>';
ArrayHelper::xmlStrToArray($xml)
// ['id' => 1, 'name' => 'Bob']
####StringHelper
StringHelper::removeStopWords('some text');
- remove stop words from stringStringHelper::removePunctuationSymbols('some text');
- Remove punctuation symbols from string