andydune/array-walker

更好的 foreach 操作符实现,支持嵌套数组。

v1.0.0 2018-05-18 08:21 UTC

This package is auto-updated.

Last update: 2024-09-29 04:43:17 UTC


README

Build Status Software License Packagist Version Total Downloads

更好的 foreach 操作符实现,支持嵌套数组。

安装

使用 composer 安装

composer require andydune/array-walker

如果 composer 没有全局安装

php composer.phar require andydune/array-walker

或编辑你的 composer.json

"require" : {
     "andydune/array-walker": "^1"
}

并执行命令

php composer.phar update

示例

use AndyDune\ArrayWalker\ArrayWalker;
use AndyDune\ArrayWalker\ItemContainer;

// Source array
$array = [
    'one' => 1,
    'two' => 2,
    'three' => 3,
];

$arrayWalker = new ArrayWalker($array);
// Change values
$arrayWalker->addFunction(function (ItemContainer $item) {
    $item->setValue($item->getValue() + 10);
});
$result = $arrayWalker->apply();
$result = [
    'one' => 11,
    'two' => 12,
    'three' => 13,
];

$arrayWalker = new ArrayWalker($array);
// Change keys
$arrayWalker->addFunction(function (ItemContainer $item) {
   $item->setKey(strtoupper($item->getKey()));
});
$result = $arrayWalker->apply();
$result = [
    'ONE' => 1,
    'TWO' => 2,
    'THREE' => 3,
];

$arrayWalker = new ArrayWalker($array);
// Delete value 
$arrayWalker = new ArrayWalker($array);
$arrayWalker->addFunction(function (ItemContainer $item) {
    $item->setValue($item->getValue() + 10);
    if ($item->getKey() == 'one') {
        $item->delete();
    }
});
$result = $arrayWalker->apply();

$result = [
    'two' => 12,
    'three' => 13,
];