laurynasgadl / travers
Travers - 使用标记路径字符串轻松遍历 PHP 数组
v2.0.0
2023-07-18 06:30 UTC
Requires
- php: ^7.3|^8.0
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-18 09:04:12 UTC
README
Travers 是一个小型的 PHP 包,旨在通过标记路径字符串轻松遍历数组。
$params = [ 'fruits' => [ 'apple' => 1, 'avocado' => 1.1, 'banana' => [ 'baby' => 'baby', 'ice_cream' => true, 'casual' => false, ], ], ]; Travers::get('fruits.apple', $params); // 1 Travers::get('fruits.banana.ice_cream', $params); // true Travers::get('fruits.banana.casual', $params); // false Travers::get('fruits.apple.red', $params); // null
安装
composer require laurynasgadl/travers
文档
初始化
该库可以通过创建类的实例或使用它静态地来使用。
use Luur\Travers; $data = [ 'path' => 1, ]; $travers = new Travers($data); $val = $travers->find('path'); // 1 $val = Travers::get('path', $data); // 1
配置
创建 Travers
的实例允许设置额外的设置
$shouldThrowException = true; $customDelimiter = '='; $travers = new Travers($data, $shouldThrowException); // If a path is not found, will throw exception instead of returning null $travers = new Travers($data, false, $customDelimiter); // Will separate path branches by the provided delimiter
设置数据
Travers 还允许在数组中设置数据
$data = [ 'path' => 1, ]; $travers = new Travers($data); $data = $travers->change('path', 2); // ['path' => 2] $data = Travers::set('path', 3, $data); // ['path' => 3]
如果路径在数组中不存在,则将其创建
$data = Travers::set('path.new.trail', 4, $data); /** * $data = [ * 'path' => [ * 'new' => [ * 'trail' => 4, * ], * ], * ]; */