A class to manipulate arrays in efficient ways to solve real world problems.
Requirement
-
PHP 7.2 or grater.
-
Composer.
Installation
Installing this package is very simple, first ensure you have the right PHP version and composer installed then in your terminal/(command prompt) run:
composer require lablnet/arrays
Features
1. Determine whether the given dataSet is really array?
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9);
var_dump(Arrays::isReallyArray($arr)); //True
var_dump(Arrays::isReallyArray([])); //False
```
2. Determine the given array is (sequential)indexes.?
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9);
var_dump(Arrays::isSequential($arr)); //True
var_dump(Arrays::isSequential(['a' => 1])); //False
```
3. Determine the given array is assoc.?
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9);
var_dump(Arrays::isAssoc($arr)); //False
var_dump(Arrays::isAssoc(['a' => 1])); //True
```
4. Determine the given array is multi-dimensional.?
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9);
var_dump(Arrays::isMulti($arr)); //False
var_dump(Arrays::isMulti(['a' => ['b' => 'c']])); //True
```
5. Get the type of array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$arr = array(2, 2, 3, 4, 4, 4, 4, 8, 8, 6, 6, 9, 9, 9, 9);
var_dump(Arrays::getType($arr)); //indexes
var_dump(Arrays::getType(['a' => ['b' => 'c']])); //multi
```
-
Add an element to an array using "operation" notation if it doesn't exist.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
var_dump(Arrays::add(['name' => 'desk', 'price' => null], 'price', 100)); // ['name' => 'desk', 'price' => 100]
```
7. Set an array item to a given value using "operator" notation.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['products' => ['desk' => ['price' => 100]]];
Arrays::set($array, 'products.desk.price', 200, '.');
// ['products' => ['desk' => ['price' => 200]]]
```
-
Get an item from an array using "operator" notation(The `Arrays::get` method retrieves a value from a deeply nested array using "dot" notation:).
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['products' => ['desk' => ['price' => 100]]];
$price = Arrays::get($array, 'products.desk.price', '.');
// 100
```
The `Arrays::get` method also accepts a default value, which will be returned if the specific key is not found.
9. Determine if an item or items exist in an array using 'Operator' notation.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
$contains = Arrays::has($array, 'product.name', '.');
// true
$contains = Arrays::has($array, ['product.price', 'product.discount'], '.');
// false
-
Determine if an item or items exist in an array using 'Operator' notation.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
$assoc = Arrays::multiToAssoc($array);
// ['name' => 'Desk', 'price' => 100]
-
Converted a multi-dimensional associative array with `dot`.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['products' => ['desk' => ['price' => 100]]];
$dot= Arrays::dot($array);
// ['products.desk.price' => 100]
-
Converted a multi-dimensional associative array with `operator`.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['products' => ['desk' => ['price' => 100]]];
$dot = Arrays::multiToAssocWithSpecificOpr($array);
// ['products.desk.price' => 100]
-
Push an item onto the beginning of an array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['red', 'green', 'blue'];
$prepend = Arrays::prepend($array, 'yellow');
// ['yellow', 'red', 'green', 'blue'];
-
Push an item to the end of array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['red', 'green', 'blue'];
$append = Arrays::append($array, 'yellow');
// ['red', 'green', 'blue', 'yellow'];
-
Get the unique elements from arrays.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['red', 'green', 'blue', 'red'];
$unique = Arrays::append($array);
// ['red', green', 'blue'];
-
Get a subset of the items from the given array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = [
'users' =>
[
'id' => 1,
'name' => "Alex",
'username' => 'peter',
],
[
'id' => 2,
'name' => "Peter Khot",
'username' => 'peter',
],
[
'id' => 3,
'name' => "John",
'username' => 'test',
]
];
$subSetOfArray = Arrays::subSetOfArray($array, 'name');
// [];
-
Remove one or many array items from a given array using "operator" notation.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['products' => ['desk' => ['price' => 100]]];
Arrays::forget($array, 'products.desk');
// ['products' => []]
-
Get all of the given array except for a specified array of keys.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['name' => 'Desk', 'price' => 100]
$filtered = Arrays::except($array, ['price']);
// ['name' => 'Desk']
-
Get a value from the array, and remove it.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['name' => 'Desk', 'price' => 100];
$name = Arrays::pull($array, 'name');
// $array: ['price' => 100]
-
Changes the case of all keys in an array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['name' => 'Desk', 'price' => 100];
$name = Arrays::arrayChangeCaseKey($array, CASE_UPPER);
// ['NAME' => 'Desk', 'PRICE' => 100]
```
21. Changes the case of all values in an array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['name' => 'Alex'];
$name = Arrays::arrayChangeCaseValue($array, CASE_UPPER);
// ['name' => 'ALEX']
```
-
Remove duplicate values from array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ````
$name = Arrays::removeDuplicates($array);
// $array: ['red', 'green', 'blue']
```
-
Get the most occurring value from array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['red', 'blue', 'green', 'red', 'blue'];
$name = Arrays::mostOccurring($array);
// ['red', 'blue']
```
-
Get the least occurring value from array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['red', 'blue', 'green', 'red', 'blue'];
$name = Arrays::leastOccurring($array);
// ['green']
```
-
Convert the array into a query string.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = [
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'php' => 'hypertext processor'
];
$name = Arrays::query($array);
// foo=bar&baz=boom&cow=milk&php=hypertext+processor
```
-
Filter the array using the given callback (THIS METION WILL NOT WORKS WITH MULTIDIMESSIONAL ARRAY.).
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = [100, '200', 300, '400', 500];
$array = Arrays::where($array, function ($value, $key) {
return is_string($value);
});
// [1 => '200', 3 => '400']
```
-
Get one or a specified number of random values from an array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = ['red', 'green', 'blue'];
$name = Arrays::random($array);
// ['blue'];
```
28. Get multiple values of same keys from multi-dimessional array.
- Example:
- ```php
use Lablnet\Arrays;
require '../vendor/autoload.php';
$array = [
['developer' => ['id' => 1, 'name' => 'Alex']],
['developer' => ['id' => 2, 'name' => 'Peter']],
];
$name = Arrays::pluck($array, 'name');
// ['Alex', 'Peter'];
```