承接 kuria/iterable 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kuria/iterable

最新稳定版本:v1.0.1

Composer 安装命令:

composer require kuria/iterable

包简介

Utilities for dealing with PHP's iterators and the iterable type

README 文档

README

Utilities for dealing with PHP's iterators and the iterable type.

https://travis-ci.com/kuria/iterable.svg?branch=master

Contents

Features

  • converting iterable values to arrays
  • caching iterator

Requirements

  • PHP 7.1+

Usage

IterableHelper::toArray()

Convert an iterable value to an array.

<?php

use Kuria\Iterable\IterableHelper;

$array = IterableHelper::toArray($iterable);
  • if the value is already an array, it is returned unchanged
  • if an iterator yields multiple values with the same key, only the last value will be present in the array

IterableHelper::toList()

Convert an iterable value to an array with consecutive integer indexes.

<?php

use Kuria\Iterable\IterableHelper;

$list = IterableHelper::toList($iterable);
  • if the value is already an array, only its values will be returned (keys are discarded)
  • if the value is traversable, all its values will be returned

CachingIterator

CachingIterator can be used to wrap any \Traversable instance so it can rewinded, counted and iterated multiple times.

  • as the traversable is iterated, its key-value pairs are cached in memory
  • the cached key-value pairs are reused for future iterations
  • when the traversable is fully iterated, the internal reference to it is dropped (since it is no longer needed)

This is mostly useful with generators or other non-rewindable traversables.

<?php

use Kuria\Iterable\Iterator\CachingIterator;

function generator()
{
    yield random_int(0, 99);
    yield random_int(100, 199);
    yield random_int(200, 299);
}

$cachingIterator = new CachingIterator(generator());

print_r(iterator_to_array($cachingIterator));
print_r(iterator_to_array($cachingIterator));
var_dump(count($cachingIterator));

Output:

Array
(
    [0] => 29
    [1] => 107
    [2] => 249
)
Array
(
    [0] => 29
    [1] => 107
    [2] => 249
)
int(3)

Note

Your numbers will vary, but the output is meant to demonstrate that the yielded pairs have indeed been cached.

统计信息

  • 总下载量: 4.77k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-09-17