PHP code example of barogue / collection
1. Go to this page and download the library: Download barogue/collection library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
barogue / collection example snippets
use Barogue\Collections\Collection;
// Using the constructor
$collection = new Collection();
$collection = new Collection([1, 2, 3]);
// Using the chainable constructor
$collection = Collection::instance();
$collection = Collection::instance([1, 2, 3]);
// Create using a range
$celsius = Collection::range(0, 100);
$alphabet = Collection::range('a', 'z');
$evens = Collection::range(0, 100, 2);
use Barogue\Collections\Collection;
// Collections can be used exactly like a normal array
$collection = new Collection([1, 2, 3]);
$collection[] = 4;
$collection['test'] = 5;
echo $collection[1]; // 2
// Get the original array
$collection->getArray();
// Get an iterator
$collection->getIterator();
// Getting the size of the collection
echo count($collection); // 5
echo $collection->count(); // 5
use Barogue\Collections\Collection;
$collection = new Collection(["FirSt" => 1, "SecOnd" => 4]);
$collection->changeKeyCase(CASE_UPPER); // ["FIRST" => 1, "SECOND" => 4]
$collection->changeKeyCase(CASE_LOWER); // ["first" => 1, "second" => 4]
$collection->changeKeyUpperCase(); // ["FIRST" => 1, "SECOND" => 4]
$collection->changeKeyLowerCase(); // ["first" => 1, "second" => 4]
use Barogue\Collections\Collection;
$collection = Collection::range(1, 100);
$chunks = $collection->chunk(10);
use Barogue\Collections\Collection;
$collection = new Collection([
'player_1' => [
'name' => 'John',
'stats' => [
'hp' => 50,
'exp' => 1000
]
],
'player_2' => [
'name' => 'Jane',
'stats' => [
'hp' => 70,
'exp' => 1000
]
]
]);
$hps = $collection->column('stats.hp'); // [50, 70]
$hps = $collection->column('stats.hp', 'name'); // ['John' => 50, 'Jane' => 70]
use Barogue\Collections\Collection;
$keys = new Collection(['a', 'b', 'c']);
$combined = $keys->combine(1, 2, 3); // ['a' => 1, 'b' => 2, 'c' => 3]
$combined = Collection::instance(['a', 'b', 'c'])->combine(1, 2, 3); // ['a' => 1, 'b' => 2, 'c' => 3]
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3, 1, 2, 4, 'a', 'a', 1]);
$appearances = $collection->countValues(); // [1 => 3, 2 => 2, 3 => 1, 4 => 1, 'a' => 2]
// Add documentation
// Add documentation
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3, 4, 5, 6]);
$diff = $collection->diff([3, 4, 5]);
$diff = $collection->diff(new Collection([3, 4, 5]));
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3, 4, 5, 6, null]);
$collection->filter();
$collection->filter(function ($item) {
return $item > 3;
});
use Barogue\Collections\Collection;
$collection = new Collection(['a', 'b', 'c']);
$flipped = $collection->flip(); // ['a' => 0, 'b' => 1, 'c' => 2]
$collection = new Collection(['a', 'b', 'c', 'a']);
$flipped = $collection->flip(); // ['a' => 0, 'b' => 1, 'c' => 2]
$doubleFlipped = $collection->flip()->flip(); // ['a' => 0, 'b' => 1, 'c' => 2]
// Add documentation
// Add documentation
// Add documentation
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
Collection::instance(['a', 'b', 'c'])->isList(); // true
Collection::instance(['a' => 1, 'b', 'c'])->isList(); // false
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => [
'a' => 1,
'b' => null,
'c' => 3,
],
]);
$collection->exists('a'); // true
$collection->exists('z'); // false
$collection->exists('c.a'); // true
$collection->exists('c.b'); // true
$collection->exists('c.z'); // false
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5,
]);
$collection->firstKey(); // 'a'
$collection->firstKey(fn($value, $key) => $value >= 3); // 'c'
$collection->firstKey(fn($value, $key) => $key != 'a'); // 'b'
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5,
]);
$collection->lastKey(); // 'e'
$collection->lastKey(fn($value, $key) => $value >= 3); // 'e'
$collection->lastKey(fn($value, $key) => $key != 'a'); // 'e'
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => [
'a' => 1,
'b' => null,
'c' => 3,
],
]);
$collection->keys(); // ['a', 'b', 'c']
$collection->keys(true); // ['a', 'b', 'c.a', 'c.b', 'c.c']
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => 3
]);
$increased = $collection->map(function ($value) {
return $value * 2;
}); // ['a' => 2, 'b' => 4, 'c' => 6]
$concatenatedKeys = $collection->map(function ($value, $key) {
return $key.'-'.$value;
}); // ['a' => 'a-1', 'b' => 'b-2', 'c' => 'c-3']
// Add documentation
// Add documentation
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8]);
$single = $collection->pop(); // 8
$multiple = $collection->pop(4)->getArray(); // [7, 6, 5, 4]
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection();
$collection->push('test'); // ['test']
$collection->push(1, 2, 3, 4, 5, 6); // ['test', 1, 2, 3, 4, 5]
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => 3
]);
$collection->randomKey(); // 'b'
$collection->randomKeys(2)->getArray(); // ['c', 'a']
use Barogue\Collections\Collection;
$factorial = Collection::range(10, 1)->reduce(fn($carry, $value) => $carry * $value, 1)
$factorial = Collection::factorial(10)
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection([
'a' => 1,
'b' => 2,
'c' => 3
]);
$reversedCopy = $collection->reverse(); // ['c' => 3, 'b' => 2, 'a' => 1]
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8]);
$single = $collection->shift(); // 1
$multiple = $collection->shift(4)->getArray(); // [2, 3, 4, 5]
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$sum = Collection::instance([1, 2, 3])->sum(); // 6
$sum = Collection::range(1, 100)->sum(); // 5050
// Add documentation
// Add documentation
// Add documentation
// Add documentation
// Add documentation
// Add documentation
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$values = Collection::instance(['a' => 1, 'b' => 2])->values()->getArray(); // [1, 2]
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 9, 'b' => 1, 'c' => 5]);
$collection->reverseSort(); // ['a' => 9, 'c' => 5, 'b' => 1]
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 9, 'b' => 5, 'c' => 1]);
$collection->sort(); // ['c' => 1, 'b' => 5, 'a' => 9]
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3]);
count($collection); // 3
$collection->count(); // 3
// Add documentation
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
echo Collection::instance('a', 'b', 'c')->implode(', '); // "a, b, c"
echo Collection::instance('a', 'b', 'c')->implode(', ', ' and '); // "a, b and c"
// Add documentation
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 5, 'c' => 4, 'z' => 3, 'b' => 2, 'e' => 1]);
$sorted = $collection->sortKeys()->reverse(); // ['z' => 3, 'e' => 1, 'c' => 4, 'b' => 2, 'a' => 5]
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 5, 'c' => 4, 'z' => 3, 'b' => 2, 'e' => 1]);
$sorted = $collection->sortKeys(); // ['a' => 5, 'b' => 2, 'c' => 4, 'e' => 1, 'z' => 3]
use Barogue\Collections\Collection;
$collection = new Collection(['coffee', 'brown', 'caffeine']);
list($drink, $color, $power) = $collection;
echo $drink; // coffee
echo $color; // brown
echo $power; // caffeine
// Add documentation
// Add documentation
use Barogue\Collections\Collection;
$numbers = Collection::range(0, 100);
$even = Collection::range(0, 100, 2);
$alphabet = Collection::range('a', 'z');
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 9, 'b' => 1, 'c' => 5]);
$collection->reverseSort()->values(); // [9, 5, 1]
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 1, 'b' => 2, 'c' => 3]);
$collection->shuffle(); // ['b' => 2, 'c' => 3, 'a' => 1]
$collection->shuffle(false); // [3, 1, 2]
use Barogue\Collections\Collection;
$collection = new Collection([1, 2, 3]);
count($collection); // 3
$collection->count(); // 3
use Barogue\Collections\Collection;
$collection = new Collection(['a' => 9, 'b' => 5, 'c' => 1]);
$collection->sort()->values(); // [1, 5, 9]
use Barogue\Collections\Collection;
$collection = new Collection([5, 4, 3, 2, 1]);
$collection->sortCallback(function($a, $b) {
$aEven = $a % 2 == 0 ? 1 : 0;
$bEven = $b % 2 == 0 ? 1 : 0;
return $aEven === $bEven ? $a <=> $b : $aEven <=> $bEven;
}); // [4 => 1, 2 => 3, 0 => 5, 3 => 2, 1 => 4]
use Barogue\Collections\Collection;
$collection = new Collection([5, 4, 3, 2, 1]);
$collection->sortCallback(function($a, $b) {
$aEven = $a % 2 == 0 ? 1 : 0;
$bEven = $b % 2 == 0 ? 1 : 0;
return $aEven === $bEven ? $a <=> $b : $aEven <=> $bEven;
}); // [1 => 4, 3 => 2, 0 => 5, 2 => 3, 4 => 1]
use Barogue\Collections\Collection;
$collection = new Collection([5, 4, 3, 2, 1]);
$collection->sortCallback(function($a, $b) {
$aEven = $a % 2 == 0 ? 1 : 0;
$bEven = $b % 2 == 0 ? 1 : 0;
return $aEven === $bEven ? $a <=> $b : $aEven <=> $bEven;
})->values(); // [1, 3, 5, 2, 4]
bash
vendor/bin/php-cs-fixer fix