ruhulfbr / array-qry
在 `Array` 上执行数据检索查询,类似于 Laravel 查询构建器
v1.0.0
2024-05-10 13:58 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ~9.6
This package is auto-updated.
Last update: 2024-09-10 14:56:28 UTC
README
对数组进行查询 允许你在数组上执行查询。
使用场景
如果你需要在数组上执行一些查询,则此包适合你
- 执行 SELECT 查询
- 执行 WHERE 查询(where、orWhere、whereIn、whereDate 等)
- 执行排序
- 执行限制和偏移量
- 执行聚合查询(count、sum、avg、max、min)
安装
要安装此包,可以使用 Composer
composer require ruhulfbr/array-qry
基本用法
要实例化 ArrayQ,请执行以下操作
require_once 'vendor/autoload.php'; use Ruhul\ArrayQuery\ArrayQ; $array = [ [ 'id' => 1, 'name' => 'John Doe', 'email' => 'john.doe@example.com', 'age' => 25, 'dob' => '1999-05-15', 'company' => [ 'name' => 'ABC Company', 'catchPhrase' => 'Innovative solutions for businesses', 'bs' => 'Transforming industries through technology' ] ], [ 'id' => 2, 'name' => 'Jane Smith', 'email' => 'jane.smith@example.com', 'age' => 30, 'dob' => '1994-08-20', 'company' => [ 'name' => 'XYZ Corporation', 'catchPhrase' => 'Empowering companies to succeed', 'bs' => 'Driving growth and innovation' ] ], [ 'id' => 3, 'name' => 'Alice Johnson', 'email' => 'alice.johnson@example.com', 'age' => 35, 'dob' => '1989-12-10', 'company' => [ 'name' => 'PQR Enterprises', 'catchPhrase' => 'Delivering excellence to clients', 'bs' => 'Building a better future together' ] ] ]; try { $result = ArrayQ::from($array) ->select('id', 'name') ->get(); } catch (\Exception $e) { $result = $e->getMessage(); } pr($result);
查询、排序和获取结果
你可以在你的数组上执行查询
$result = ArrayQ::from($array) ->select('id', 'name') //->select(['id', 'name']) ->where('id', 2) //->where('id', '>' ,2) ->orWhere('id', 3) //->orWhere('id', '>=', 3) ->whereDate('dob', '2010-10-10') //->whereDate('dob', '>=','2010-10-10') ->whereLike('name', 'ruhul') //->whereLike('name', 'ruhul', 'start') //->whereLike('name', 'ruhul', 'end') ->whereIn('age', [22,23,25,26]) ->whereNotIn('age', [11,12,13]) ->orderBy('id') //->orderBy('id', 'desc') //->orderBy('id', 'asc') //->latest('id') // Default Id //->oldest('id') // Default Id ->get();
更多示例
// To Get All Result $result = ArrayQ::from($array)->all(); // To Get All Sorted Result $result = ArrayQ::from($array)->orderBy('id', 'desc')->all(); // To Get Specific Row $result = ArrayQ::from($array)->where('id', 1)->row(); // To Get First Result $result = ArrayQ::from($array)->where('id', 1)->first(); // To Get Last Result $result = ArrayQ::from($array)->where('id', 1)->last(); // To Get nth row $result = ArrayQ::from($array)->getNth(2); // [0-n] // Check Is row exist $result = ArrayQ::from($array)->where('id', 1)->hasData(); // boolean $result = ArrayQ::from($array)->where('id', 1)->doesExist(); // boolean // To Get All Sorted Result $result = ArrayQ::from($array)->orderBy('id', 'desc')->all();
可用的 WHERE 操作符
=
(默认操作符,可以省略)>
<
<=
>=
!=
可用的排序操作符
ASC
DESC
(默认操作符,可以省略)asc
desc
限制和偏移量
你可以添加条件并指定查询结果的限制和偏移量
$result = ArrayQ::from($array) ->select('*') ->orderBy('id') ->limit(10) //->limit(10, 2) ->get();
聚合查询
你可以添加条件并指定查询结果的限制和偏移量
// To Get Count $result = ArrayQ::from($array)->count(); // To Get Sum $result = ArrayQ::from($array)->sum('age'); // To Get Average $result = ArrayQ::from($array)->avg('age'); // To Get row with minimum column value $result = ArrayQ::from($array)->min('age'); // To Get row with maximum column value $result = ArrayQ::from($array)->max('age');
支持
如果你发现了一个问题或有任何想法,请参考此部分。
作者
- Md Ruhul Amin - Github