zerifas/collections

PHP 数据集合工具

v1.1.0 2016-11-02 15:18 UTC

This package is auto-updated.

Last update: 2024-08-29 04:36:59 UTC


README

PHP 数据集合工具。

安装

$ composer require zerifas/collections

用法

使用此库有两种方式

  • Arr 辅助类,包含静态方法。第一个参数始终是要操作数组。
  • ArrayWrapper 类,它将普通数组包装在 ArrayObject

Arr 辅助类

获取单个项目

use Zerifas\Collections\Arr;

$arr = [
    'key1' => 'value1',
    'key2' => 'value2',
];
$item = Arr::get($arr, 'key1'); // 'value1'
$item = Arr::get($arr, 'NONE'); // null
$item = Arr::get($arr, 'NONE', 'default value'); // 'default value'

过滤和映射

示例

use Zerifas\Collections\Arr;

$arr = [
    'key1' => 1,
    'key2' => 2,
    'key3' => 3,
];

$filtered = Arr::filter($arr, function ($value, $key) {
    return $key !== 'key1';
});
$mapped = Arr::map($filtered, function ($value, $key) {
    return 'value ' . $value;
});
var_dump($mapped);

输出

array(2) {
  'key2' =>
  string(7) "value 2"
  'key3' =>
  string(7) "value 3"
}

ArrayWrapper 类

获取单个项目

use Zerifas\Collections\ArrayWrapper;

$arr = new ArrayWrapper([
    'key1' => 'value1',
    'key2' => 'value2',
]);
$item = $arr->get('key1'); // 'value1'
$item = $arr->get('NONE'); // null
$item = $arr->get('NONE', 'default value'); // 'default value'

过滤和映射

示例

use Zerifas\Collections\ArrayWrapper;

$arr = [
    'key1' => 1,
    'key2' => 2,
    'key3' => 3,
];
$result = (new ArrayWrapper($arr))
    ->filter(function ($value, $key) {
        return $key !== 'key1';
    })
    ->map(function ($value, $key) {
        return 'value ' . $value;
    })
    ->toArray()
;

var_dump($result);

输出

array(2) {
  'key2' =>
  string(7) "value 2"
  'key3' =>
  string(7) "value 3"
}

您还可以使用 Arr 辅助类包装普通数组

$arr = [1, 2, 3];
$result = Arr::wrap($arr)->filter(function (…) { … })->toArray();