noi / array-walker
ArrayWalker,为 array_walk() 和 array_map() 提供面向对象包装
dev-master
2013-09-19 10:13 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-23 15:56:23 UTC
README
对内置的 array_walk() 和 array_map() 提供面向对象的包装。
安装
使用 Composer,只需 $ composer require noi/array-walker
包或
{ "require": { "noi/array-walker": "dev-master" } }
用法
示例 1
<?php $names = array('*APPLE*', '*ORANGE*', '*LEMON*'); $walker = new \Noi\Util\ArrayWalker($names); $result = $walker->trim('*')->strtolower()->ucfirst(); assert($result->getArrayCopy() === array('Apple', 'Orange', 'Lemon')); assert((array) $result === array('Apple', 'Orange', 'Lemon'));
以下代码返回的结果与上面相同
// ... $result = $walker->map(function ($name) { return ucfirst(strtolower(trim($name, '*'))); });
示例 2
<?php $dom = new \DOMDocument(); $dom->loadXML('<users><user>Alice</user><user>Bob</user></users>'); $users = $dom->getElementsByTagName('user'); $walker = new \Noi\Util\ArrayWalker($users); $walker->setAttribute('type', 'engineer'); assert(trim($dom->saveHtml()) == '<users><user type="engineer">Alice</user><user type="engineer">Bob</user></users>');
以下代码返回的结果与上面相同
// ... $walker->walk(function ($node) { $node->setAttribute('type', 'engineer'); });
许可协议
ArrayWalker 使用 MIT 许可协议 - 详细信息请参阅 LICENSE
文件。