yiisoft/arrays

Yii 数组助手

3.1.0 2024-04-04 11:07 UTC

This package is auto-updated.

Last update: 2024-09-16 19:36:08 UTC


README

Yii

Yii Arrays


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

该包提供

  • ArrayHelper,它具有用于处理数组的静态方法;
  • ArraySorter,它具有用于排序数组的静态方法;
  • ArrayAccessTrait 提供了 \IteratorAggregate\ArrayAccess\Countable 的实现;
  • ArrayableInterfaceArrayableTrait 用于支持自定义表示的类。

要求

  • PHP 8.0 或更高版本。

安装

composer require yiisoft/arrays

ArrayHelper 使用

Array helper 方法是静态的,因此使用方式如下

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

总的来说,助手有以下方法组。

获取数据

  • getValue
  • getValueByPath
  • getColumn
  • getObjectVars

设置数据

  • addValue
  • addValueByPath
  • setValue
  • setValueByPath

删除数据

  • remove
  • removeByPath
  • removeValue

检测数组类型

  • isIndexed
  • isAssociative

HTML 编码和解码值

  • htmlDecode
  • htmlEncode

与数组进行比较

  • isIn
  • isSubset

转换

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

其他

  • keyExists
  • pathExists

ArraySorter 使用

Array sorter 有一个静态方法,使用方式如下

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

ArrayAccessTrait 使用

ArrayAccessTrait\IteratorAggregate\ArrayAccess\Countable 提供了实现。

请注意,ArrayAccessTrait 需要使用它的类包含一个名为 data 的属性,该属性应该是一个数组。数据将通过 ArrayAccessTrait 暴露,以支持将类对象像数组一样访问。

使用示例

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();
}

ArrayableInterfaceArrayableTrait 使用

ArrayableInterface 及其实现 ArrayableTrait 旨在用于希望支持自定义表示其实例的类。

使用示例

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']

文档

如果您需要帮助或有问题,Yii 论坛 是一个好去处。您还可以查看其他 Yii 社区资源

许可

Yii Arrays 是免费软件。它根据 BSD 许可证发布。请参阅 LICENSE 了解更多信息。

Yii 软件公司 维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack