PHP code example of hassan / one-loop
1. Go to this page and download the library: Download hassan/one-loop 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/ */
hassan / one-loop example snippets
$users = App\User::all();
$ids = one_loop($users)->reject(static function ($user) {
return $user->age < 20;
})
->map(static function ($user) {
return $user->id;
})
->apply();
// Get first 100 active users
$users = one_loop($allUsers)
->filter(fn($user) => $user->active)
->limit(100)
->apply();
// Alias: take()
$users = one_loop($allUsers)
->filter(fn($user) => $user->active)
->take(100)
->apply();
// Pluck by property name
$emails = one_loop($users)
->pluck('email')
->apply();
// Pluck with callback
$fullNames = one_loop($users)
->pluck(fn($user) => $user->first_name . ' ' . $user->last_name)
->apply();
// Unique values
$uniqueDepartments = one_loop($employees)
->pluck('department')
->unique()
->apply();
// Unique by key
$uniqueUsers = one_loop($users)
->unique('email')
->apply();
// Group by property
$byDepartment = one_loop($employees)
->groupBy('department')
->apply();
// Group by callback
$byAgeGroup = one_loop($users)
->groupBy(function($user) {
if ($user->age < 30) return 'young';
if ($user->age < 50) return 'middle';
return 'senior';
})
->apply();
$shouldFilterActive = true;
$result = one_loop($users)
->when($shouldFilterActive, function($loop) {
$loop->filter(fn($user) => $user->active);
})
->map(fn($user) => $user->id)
->apply();
use Illuminate\Support\Collection;
// Use on any Collection
$result = User::all()
->oneLoop()
->filter(fn($user) => $user->active)
->map(fn($user) => $user->id)
->apply();
// E-commerce: Process large product catalog
$products = Product::all() // 500,000 products
->oneLoop()
->filter(fn($p) => $p->active)
->reject(fn($p) => $p->stock <= 0)
->when($categoryFilter, fn($loop) =>
$loop->filter(fn($p) => in_array($p->category_id, $categoryFilter))
)
->map(fn($p) => [
'id' => $p->id,
'name' => $p->name,
'price' => $p->price * 0.9 // 10% discount
])
->limit(1000)
->apply();
// Result: 35% faster than standard operations!