baka/support

baka 支持包。

1.3.0 2020-03-27 13:58 UTC

This package is auto-updated.

Last update: 2024-09-29 05:08:49 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version composer.lock Total Downloads License

Baka Support

PHP 有用代码片段的精选集合。

要求

此包需要 PHP 7.2 或更高版本。

安装

您可以通过 composer 安装此包

composer require baka/support

包将自动注册自己。

📚 数组

all

如果提供的函数对所有数组元素返回 true,则返回 true,否则返回 false

all([2, 3, 4, 5], function ($item) {
    return $item > 1;
}); // true

any

如果提供的函数至少对一个数组元素返回 true,则返回 true,否则返回 false

any([1, 2, 3, 4], function ($item) {
    return $item < 2;
}); // true

deepFlatten

深度展开数组。

deepFlatten([1, [2], [[3], 4], 5]); // [1, 2, 3, 4, 5]

drop

返回一个新数组,从左侧移除了 n 个元素。

drop([1, 2, 3]); // [2,3]
drop([1, 2, 3], 2); // [3]

findLast

返回提供的函数对最后一个元素返回真值的最后一个元素。

findLast([1, 2, 3, 4], function ($n) {
    return ($n % 2) === 1;
});
// 3

findLastIndex

返回提供的函数对最后一个元素返回真值的最后一个元素的索引。

findLastIndex([1, 2, 3, 4], function ($n) {
    return ($n % 2) === 1;
});
// 2

flatten

将数组扁平化到一维深度。

flatten([1, [2], 3, 4]); // [1, 2, 3, 4]

groupBy

基于给定的函数对数组元素进行分组。

groupBy(['one', 'two', 'three'], 'strlen'); // [3 => ['one', 'two'], 5 => ['three']]

hasDuplicates

检查扁平列表是否有重复值。如果存在重复值则返回 true,否则返回 false

hasDuplicates([1, 2, 3, 4, 5, 5]); // true

head

返回列表的头部。

head([1, 2, 3]); // 1

last

返回数组中的最后一个元素。

last([1, 2, 3]); // 3

pluck

检索给定键的所有值。

pluck([
    ['product_id' => 'prod-100', 'name' => 'Desk'],
    ['product_id' => 'prod-200', 'name' => 'Chair'],
], 'name');
// ['Desk', 'Chair']

pull

修改原始数组以过滤掉指定的值。

$items = ['a', 'b', 'c', 'a', 'b', 'c'];
pull($items, 'a', 'c'); // $items will be ['b', 'b']

reject

使用给定的回调过滤集合。

reject(['Apple', 'Pear', 'Kiwi', 'Banana'], function ($item) {
    return strlen($item) > 4;
}); // ['Pear', 'Kiwi']

remove

从数组中删除给定函数返回假值的元素。

remove([1, 2, 3, 4], function ($n) {
    return ($n % 2) === 0;
});
// [0 => 1, 2 => 3]

tail

返回数组中除第一个元素之外的所有元素。

tail([1, 2, 3]); // [2, 3]

take

返回一个数组,从开头移除了 n 个元素。

take([1, 2, 3], 5); // [1, 2, 3]
take([1, 2, 3, 4, 5], 2); // [1, 2]

without

过滤出数组中具有指定值之一的元素。

without([2, 1, 2, 3], 1, 2); // [3]

orderBy

按键对数组或对象集合进行排序。

orderBy(
    [
        ['id' => 2, 'name' => 'Joy'],
        ['id' => 3, 'name' => 'Khaja'],
        ['id' => 1, 'name' => 'Raja']
    ],
    'id',
    'desc'
); // [['id' => 3, 'name' => 'Khaja'], ['id' => 2, 'name' => 'Joy'], ['id' => 1, 'name' => 'Raja']]

📜 字符串

endsWith

检查字符串是否以给定的子串结尾。

endsWith('Hi, this is me', 'me'); // true

firstStringBetween

返回位于参数 start 和 end 之间的第一个字符串。


```php
firstStringBetween('This is a [custom] string', '[', ']'); // custom

isAnagram

比较两个字符串,如果它们都是字母表中的字母,则返回 true,否则返回 false

isAnagram('act', 'cat'); // true

isLowerCase

如果给定的字符串是小写,则返回 true,否则返回 false

isLowerCase('Morning shows the day!'); // false
isLowerCase('hello'); // true

isUpperCase

如果给定的字符串是大写,则返回 true,否则返回 false

isUpperCase('MORNING SHOWS THE DAY!'); // true
isUpperCase('qUick Fox'); // false

palindrome

如果给定的字符串是回文,则返回 true,否则返回 false

palindrome('racecar'); // true
palindrome(2221222); // true

startsWith

检查字符串是否以给定的子串开头。

startsWith('Hi, this is me', 'Hi'); // true

countVowels

返回提供的字符串中的元音字母数量。

使用正则表达式来计算字符串中元音字母(A, E, I, O, U)的数量。

countVowels('sampleInput'); // 4

decapitalize

将字符串的第一个字母转换为小写。

将字符串的第一个字母转换为小写,然后将其与字符串的其余部分连接起来。省略 upperRest 参数以保持字符串的其余部分完整,或将它设置为 true 以转换为大写。

decapitalize('FooBar'); // 'fooBar'

contains

检查一个单词/子字符串是否存在于给定的字符串输入中。使用 strpos 来查找子字符串在字符串中的首次出现位置。返回 truefalse

contains('This is an example string', 'example'); // true
contains('This is an example string', 'hello'); // false

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅许可证文件

感谢

感谢 appzcoder 提供的代码片段!