world-warm-worm / array-state-observer
计算相同数组的两个状态之间的差异
v0.1.0-beta
2024-09-10 06:32 UTC
Requires
- php: >=7.4
This package is auto-updated.
Last update: 2024-09-10 06:57:00 UTC
README
内容
关于
当你有一个数组,经过一些处理后它将发生变化,并且你想要捕获这些变化以便将它们插入/更新/删除到数据库表(例如)中时,这个库可以帮到你。也许它还需要你做其他事情。
安装
可以通过使用 Composer 来安装 array-state-observer,只需在你的项目中运行此命令即可
composer require world-warm-worm/array-state-observer
调用和使用库
调用和使用库的简单示例
<?php require_once('vendor/autoload.php'); use WorldWarmWorm\ArrayStateObserver\SimpleArrayObserver; // we have some dummy initial data. let it be three ids of something $before = [1, 2, 3]; // let's change initial data through some job with it $after = array_slice($before, 0, 2); // here we have object of SimpleArrayObserver that contains calculated data $observer = SimpleArrayObserver::init($before, $after); // here we want to get all of calculated data $result = $observer->all(); // that's it! var_dump($result); // short notation // var_dump(SimpleArrayObserver::init($before, $after)->all()); /** array(2) { ["added"]=> array(0) { } ["deleted"]=> array(1) { [2]=> string(1) "3" } } */
如果我们确定数据只将被删除或只将被添加,则提供了相应的方法。在上面的例子中,我们从数组中删除了最后一个id。因此,我们可以放心地使用 deleted() 方法来获取仅删除的id并进一步处理它
var_dump(SimpleArrayObserver::init($before, $after)->deleted());
/**
array(1) {
[2]=>
int(3)
}
*/
GitHub
欢迎使用 array-state-observer