This project is independently you don't need to install anything(composer) unless you want to contribute.
Most of the code extract from Laravel codebase.
- PHP 7.0 or higher
You don't need to install by composer if your project doesn't have it.
Just import it manually in src
folder.
But If you want to install by composer, please follow command below
composer require phannaly/laravel-helpers
This library will load automatically after you install it. Done!, you are good to go.
- array_add
- array_collapse
- array_divide
- array_dot
- array_except
- array_first
- array_flatten
- array_forget
- array_get
- array_has
- array_last
- array_only
- array_pluck
- array_prepend
- array_pull
- array_random
- array_set
- array_sort
- array_sort_recursive
- array_where
- array_wrap
- data_fill
- data_get
- data_set
- head
- last
- camel_case
- ends_with
- kebab_case
- preg_replace_array
- snake_case
- starts_with
- str_after
- str_before
- str_contains
- str_finish
- str_is
- str_limit
- str_random
- str_replace_array
- str_replace_first
- str_replace_last
- str_slug
- str_start
- studly_case
- title_case
The array_add
function adds a given key / value pair to an array if the given key doesn't already exist in the array:
$array = array_add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]
The array_collapse
function collapses an array of arrays into a single array:
$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
The array_divide
function returns two arrays, one containing the keys, and the other containing the values of the given array:
[$keys, $values] = array_divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']
The array_dot
function flattens a multi-dimensional array into a single level array that uses "dot" notation to indicate depth:
$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = array_dot($array);
// ['products.desk.price' => 100]
The array_except
function removes the given key / value pairs from an array:
$array = ['name' => 'Desk', 'price' => 100];
$filtered = array_except($array, ['price']);
// ['name' => 'Desk']
The array_first
function returns the first element of an array passing a given truth test:
$array = [100, 200, 300];
$first = array_first($array, function ($value, $key) {
return $value >= 150;
});
// 200
A default value may also be passed as the third parameter to the method. This value will be returned if no value passes the truth test:
$first = array_first($array, $callback, $default);
The array_flatten
function flattens a multi-dimensional array into a single level array:
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$flattened = array_flatten($array);
// ['Joe', 'PHP', 'Ruby']
The array_forget
function removes a given key / value pair from a deeply nested array using "dot" notation:
$array = ['products' => ['desk' => ['price' => 100]]];
array_forget($array, 'products.desk');
// ['products' => []]
The array_get
function retrieves a value from a deeply nested array using "dot" notation:
$array = ['products' => ['desk' => ['price' => 100]]];
$price = array_get($array, 'products.desk.price');
// 100
The array_get
function also accepts a default value, which will be returned if the specific key is not found:
$discount = array_get($array, 'products.desk.discount', 0);
// 0
The array_has
function checks whether a given item or items exists in an array using "dot" notation:
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
$contains = array_has($array, 'product.name');
// true
$contains = array_has($array, ['product.price', 'product.discount']);
// false
The array_last
function returns the last element of an array passing a given truth test:
$array = [100, 200, 300, 110];
$last = array_last($array, function ($value, $key) {
return $value >= 150;
});
// 300
A default value may be passed as the third argument to the method. This value will be returned if no value passes the truth test:
$last = array_last($array, $callback, $default);
The array_only
function returns only the specified key / value pairs from the given array:
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$slice = array_only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]
The array_pluck
function retrieves all of the values for a given key from an array:
$array = [
['developer' => ['id' => 1, 'name' => 'Taylor']],
['developer' => ['id' => 2, 'name' => 'Abigail']],
];
$names = array_pluck($array, 'developer.name');
// ['Taylor', 'Abigail']
You may also specify how you wish the resulting list to be keyed:
$names = array_pluck($array, 'developer.name', 'developer.id');
// [1 => 'Taylor', 2 => 'Abigail']
The array_prepend
function will push an item onto the beginning of an array:
$array = ['one', 'two', 'three', 'four'];
$array = array_prepend($array, 'zero');
// ['zero', 'one', 'two', 'three', 'four']
If needed, you may specify the key that should be used for the value:
$array = ['price' => 100];
$array = array_prepend($array, 'Desk', 'name');
// ['name' => 'Desk', 'price' => 100]
The array_pull
function returns and removes a key / value pair from an array:
$array = ['name' => 'Desk', 'price' => 100];
$name = array_pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]
A default value may be passed as the third argument to the method. This value will be returned if the key doesn't exist:
$value = array_pull($array, $key, $default);
The array_random
function returns a random value from an array:
$array = [1, 2, 3, 4, 5];
$random = array_random($array);
// 4 - (retrieved randomly)
You may also specify the number of items to return as an optional second argument. Note that providing this argument will return an array, even if only one item is desired:
$items = array_random($array, 2);
// [2, 5] - (retrieved randomly)
The array_set
function sets a value within a deeply nested array using "dot" notation:
$array = ['products' => ['desk' => ['price' => 100]]];
array_set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
The array_sort function sorts an array by its values:
$array = ['Desk', 'Table', 'Chair'];
$sorted = array_sort($array);
// ['Chair', 'Desk', 'Table']
You may also sort the array by the results of the given Closure:
$array = [
['name' => 'Desk'],
['name' => 'Table'],
['name' => 'Chair'],
];
$sorted = array_values(array_sort($array, function ($value) {
return $value['name'];
}));
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
['name' => 'Table'],
]
*/
The array_sort_recursive
function recursively sorts an array using the sort
function for numeric sub=arrays and ksort
for associative sub-arrays:
$array = [
['Roman', 'Taylor', 'Li'],
['PHP', 'Ruby', 'JavaScript'],
['one' => 1, 'two' => 2, 'three' => 3],
];
$sorted = array_sort_recursive($array);
/*
[
['JavaScript', 'PHP', 'Ruby'],
['one' => 1, 'three' => 3, 'two' => 2],
['Li', 'Roman', 'Taylor'],
]
*/
The array_where
function filters an array using the given Closure:
$array = [100, '200', 300, '400', 500];
$filtered = array_where($array, function ($value, $key) {
return is_string($value);
});
// [1 => '200', 3 => '400']
The array_wrap
function wraps the given value in an array. If the given value is already an array it will not be changed:
$string = 'Laravel';
$array = array_wrap($string);
// ['Laravel']
If the given value is null, an empty array will be returned:
$nothing = null;
$array = array_wrap($nothing);
// []
The data_fill
function sets a missing value within a nested array or object using "dot" notation:
$data = ['products' => ['desk' => ['price' => 100]]];
data_fill($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 100]]]
data_fill($data, 'products.desk.discount', 10);
// ['products' => ['desk' => ['price' => 100, 'discount' => 10]]]
This function also accepts asterisks as wildcards and will fill the target accordingly:
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2'],
],
];
data_fill($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 200],
],
]
*/
The data_get
function retrieves a value from a nested array or object using "dot" notation:
$data = ['products' => ['desk' => ['price' => 100]]];
$price = data_get($data, 'products.desk.price');
// 100
The data_get
function also accepts a default value, which will be returned if the specified key is not found:
$discount = data_get($data, 'products.desk.discount', 0);
// 0
The data_set
function sets a value within a nested array or object using "dot" notation:
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
This function also accepts wildcards and will set values on the target accordingly:
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 150],
],
];
data_set($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 200],
['name' => 'Desk 2', 'price' => 200],
],
]
*/
By default, any existing values are overwritten. If you wish to only set a value if it doesn't exist, you may pass false
as the third argument:
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200, false);
// ['products' => ['desk' => ['price' => 100]]]
The head
function returns the first element in the given array:
$array = [100, 200, 300];
$first = head($array);
// 100
The last
function returns the last element in the given array:
$array = [100, 200, 300];
$last = last($array);
// 300
The camel_case
function converts the given string to camelCase
:
$converted = camel_case('foo_bar');
// fooBar
The ends_with
function determines if the given string ends with the given value:
$result = ends_with('This is my name', 'name');
// true
The kebab_case
function converts the given string to kebab-case
:
$converted = kebab_case('fooBar');
// foo-bar
The preg_replace_array
function replaces a given pattern in the string sequentially using an array:
$string = 'The event will take place between :start and :end';
$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
The snake_case
function converts the given string to snake_case
:
$converted = snake_case('fooBar');
// foo_bar
The starts_with
function determines if the given string begins with the given value:
$result = starts_with('This is my name', 'This');
// true
The str_after
function returns everything after the given value in a string:
$slice = str_after('This is my name', 'This is');
// ' my name'
The str_before
function returns everything before the given value in a string:
$slice = str_before('This is my name', 'my name');
// 'This is '
The str_contains
function determines if the given string contains the given value (case sensitive):
$contains = str_contains('This is my name', 'my');
// true
You may also pass an array of values to determine if the given string contains any of the values:
$contains = str_contains('This is my name', ['my', 'foo']);
// true
The str_finish
function adds a single instance of the given value to a string if it does not already end with the value:
$adjusted = str_finish('this/string', '/');
// this/string/
$adjusted = str_finish('this/string/', '/');
// this/string/
The str_is
function determines if a given string matches a given pattern. Asterisks may be used to indicate wildcards:
$matches = str_is('foo*', 'foobar');
// true
$matches = str_is('baz*', 'foobar');
// false
The str_limit
function truncates the given string at the specified length:
$truncated = str_limit('The quick brown fox jumps over the lazy dog', 20);
// The quick brown fox...
You may also pass a third argument to change the string that will be appended to the end:
$truncated = str_limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
The str_random
function generates a random string of the specified length. This function uses PHP's random_bytes
function:
$random = str_random(40);
The str_replace_array
function replaces a given value in the string sequentially using an array:
$string = 'The event will take place between ? and ?';
$replaced = str_replace_array('?', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
The str_replace_first
function replaces the first occurrence of a given value in a string:
$replaced = str_replace_first('the', 'a', 'the quick brown fox jumps over the lazy dog');
// a quick brown fox jumps over the lazy dog
The str_replace_last
function replaces the last occurrence of a given value in a string:
$replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog');
// the quick brown fox jumps over a lazy dog
The str_slug
function generates a URL friendly "slug" from the given string:
$slug = str_slug('Laravel 5 Framework', '-');
// laravel-5-framework
The str_start
function adds a single instance of the given value to a string if it does not already start with the value:
$adjusted = str_start('this/string', '/');
// /this/string
$adjusted = str_start('/this/string', '/');
// /this/string
The studly_case
function converts the given string to StudlyCase
:
$converted = studly_case('foo_bar');
// FooBar
The title_case
function converts the given string to Title Case
:
$converted = title_case('a nice title uses the correct case');
// A Nice Title Uses The Correct Case
Feel free to contribute through PR.
See CODE OF CONDUCT for details.
This package operates under the MIT License (MIT). See the LICENSE file for details.