tebru / multi-array
为PHP提供一种数据结构,以简化对多维数组的访问
v0.2.1
2015-07-16 22:08 UTC
Requires
- php: >=5.4
Requires (Dev)
- php: >=5.5
- mockery/mockery: dev-master
- phpunit/phpunit: 4.3.*
This package is auto-updated.
Last update: 2024-09-24 10:48:45 UTC
README
MultiArray
该项目旨在提供更简单的对多维数组的访问。在创建过程中考虑了JSON响应。目标是使其更容易检查是否存在多层级的键,并检索值。
安装
composer require tebru/multi-array:~0.1
使用方法
通过实例化或使用工厂方法创建对象。传入一个JSON对象或数组。如果无法解析JSON或变量不是数组,将抛出InvalidArgumentException异常。
$array = [
'key' => 'value',
'key2' => ['nested-key' => 'value2'],
];
$multiArray = new MultiArray($array);
$multiArray = $multiArrayFactory->make($array);
$json = json_encode($array);
$multiArray = new MultiArray($json);
$multiArray = $multiArrayFactory->make($json);
从这里您可以检查键是否存在
$multiArray->exists('key2.nested-key'); // returns true
$multiArray->exists('key3'); // returns false
获取键的值
$multiArray->get('key2'); // returns ['nested-key' => 'value2']
$multiArray->get('key2.nested-key'); // returns 'value2'
$multiArray->get('key3'); // throws OutOfBoundsException
设置键的值
$multiArray->set('key1', 'value');
$multiArray->set('key2.nested-key', 'value');
$multiArray->set('key2.newKey', 'value');
$multiArray->set('key1.newKey', 'value'); // throws InvalidArgumentException
删除键的值
$multiArray->remove('key1');
$multiArray->remove('key2.unknown'); // throws OutOfBoundsException
我们默认使用点 .
来分隔键,但可以在实例化时更改
$multiArray = new MultiArray($array, ':');
$multiArray = $multiArrayFactory->make($array, '--');
您也可以像访问普通数组一样访问对象
isset($multiArray['key2.nested-key']);
$multiArray['key2.nested-key'];
$multiArray['key2.nested-key'] = 'value';
unset($multiArray['key2.nested-key']);