定制 yiisoft/arrays 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

yiisoft/arrays

最新稳定版本:3.2.1

Composer 安装命令:

composer require yiisoft/arrays

包简介

Yii Array Helper

README 文档

README

Yii

Yii Arrays


Latest Stable Version Total Downloads Build status Code Coverage Mutation testing badge static analysis type-coverage

The package provides:

  • ArrayHelper that has static methods to work with arrays;
  • ArraySorter that has static methods for sort arrays;
  • ArrayAccessTrait provides the implementation for \IteratorAggregate, \ArrayAccess and \Countable;
  • ArrayableInterface and ArrayableTrait for use in classes who want to support customizable representation of their instances.

Requirements

  • PHP 8.1 - 8.5.

Installation

composer require yiisoft/arrays

ArrayHelper usage

Array helper methods are static so usage is like the following:

$username = \Yiisoft\Arrays\ArrayHelper::getValue($_POST, 'username');

Overall the helper has the following method groups.

Getting data

  • getValue
  • getValueByPath
  • getColumn
  • getObjectVars

Setting data

  • addValue
  • addValueByPath
  • setValue
  • setValueByPath

Removing data

  • remove
  • removeByPath
  • removeValue

Detecting array types

  • isIndexed
  • isAssociative

HTML encoding and decoding values

  • htmlDecode
  • htmlEncode

Testing against arrays

  • isIn
  • isSubset

Transformation

  • index
  • group
  • filter
  • map
  • merge
  • parametrizedMerge
  • renameKey
  • toArray

Other

  • keyExists
  • pathExists

ArraySorter usage

Array sorter has one static method which usage is like the following:

\Yiisoft\Arrays\ArraySorter::multisort($data, ['age', 'name'], [SORT_ASC, SORT_DESC]);

ArrayAccessTrait usage

ArrayAccessTrait provides the implementation for \IteratorAggregate, \ArrayAccess and \Countable.

Note that ArrayAccessTrait requires the class using it contain a property named data which should be an array. The data will be exposed by ArrayAccessTrait to support accessing the class object like an array.

Example of use:

use \Yiisoft\Arrays\ArrayAccessTrait;

class OfficeClassification implements \IteratorAggregate, \ArrayAccess, \Countable
{
    use ArrayAccessTrait;

    public array $data = [
        'a' => 'Class A',
        'b' => 'Class B',
        'c' => 'Class C',
    ];
}

$classification = new OfficeClassification();

echo 'Count classes: ' . $classification->count() . "\n"; // 3

$iterator = $classification->getIterator();
while ($iterator->valid()) {
    echo $iterator->current() . "\n"; // Class A, Class B, Class C
    $iterator->next();
}

ArrayableInterface and ArrayableTrait usage

ArrayableInterface and its implementation ArrayableTrait intended for use in classes who want to support customizable representation of their instances.

Example of use:

use \Yiisoft\Arrays\ArrayableTrait;
use \Yiisoft\Arrays\ArrayableInterface;

class Car implements ArrayableInterface
{
    use ArrayableTrait;

    public string $type = 'Crossover';
    public string $color = 'Red';
    public int $torque = 472;
}

$car = new Car();

$data = $car->toArray(['type', 'color']); // ['type' => 'Crossover', 'color' => 'Red']

Documentation

If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.

License

The Yii Arrays is free software. It is released under the terms of the BSD License. Please see LICENSE for more information.

Maintained by Yii Software.

Support the project

Open Collective

Follow updates

Official website Twitter Telegram Facebook Slack

统计信息

  • 总下载量: 1.86M
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 57
  • 点击次数: 1
  • 依赖项目数: 85
  • 推荐数: 2

GitHub 信息

  • Stars: 56
  • Watchers: 18
  • Forks: 28
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固