30 秒理解 PHP 代码片段(1)数组 - Array

30 秒理解 PHP 代码片段(1)数组 - Array,第1张

概述排列all如果所提供的函数返回true的数量等于数组中成员数量的总和,则函数返回true,否则返回false。function all($items, $func){    return count(array_filter($items, $func)) === count($items);}Examples:all([2, 3, 4, 5], function ($item) {    r 排列all

如果所提供的函数返回 true 的数量等于数组中成员数量的总和,则函数返回 true,否则返回 false

function all($items, $func){    return count(array_filter($items, $func)) === count($items);}

Examples:

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

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

function any($items, $func){    return count(array_filter($items, $func)) > 0;}

Examples:

any([1, 2, 3, 4], function ($item) {    return $item < 2;}); // true
deepFlatten(深度平铺数组)

将多维数组转为一维数组。

function deepFlatten($items)

{

   $result = [];

   foreach ($items as $item) {

       if (!is_array($item)) {

           $result[] = $item;

       } else {

           $result = array_merge($result, deepFlatten($item));

       }

   }


   return $result;

}

Examples:

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

返回一个新数组,并从左侧d出 n个元素。

function drop($items, $n = 1){    return array_slice($items, $n);}

Examples:

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

返回所提供的函数为其返回的有效值(即过滤后的值)的最后一个元素的键值( value)。

function findLast($items, $func)

{

   $filteredItems = array_filter($items, $func);


   return array_pop($filteredItems);

}

Examples:

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

返回所提供的函数为其返回的有效值(即过滤后的值)的最后一个元素的键名( key)。

function findLastIndex($items, $func)

{

   $keys = array_keys(array_filter($items, $func));


   return array_pop($keys);

}

Examples:

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

将数组降为一维数组。

function flatten($items)

{

   $result = [];

   foreach ($items as $item) {

       if (!is_array($item)) {

           $result[] = $item;

       } else {

           $result = array_merge($result, array_values($item));

       }

   }


   return $result;

}

Examples:

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

根据给定的函数对数组的元素进行分组。

function groupBy($items, $func)

{

   $group = [];

   foreach ($items as $item) {

       if ((!is_string($func) && is_callable($func)) || function_exists($func)) {

           $key = call_user_func($func, $item);

           $group[$key][] = $item;

       } elseif (is_object($item)) {

           $group[$item->{$func}][] = $item;

       } elseif (isset($item[$func])) {

           $group[$item[$func]][] = $item;

       }

   }


   return $group;

}

Examples:

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

检查数组中的重复值。如果存在重复值,则返回 true;如果所有值都是唯一的,则返回 false

function hasDuplicates($items){    return count($items) > count(array_unique($items));}

Examples:

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

返回数组中的第一个元素。

function head($items){    return reset($items);}

Examples:

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

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

function last($items){    return end($items);}

Examples:

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

检索给定键名的所有键值。

function pluck($items, $key){    return array_map( function($item) use ($key) {        return is_object($item) ? $item->$key : $item[$key];    }, $items);}

Examples:

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

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

function pull(&$items, ...$params){    $items = array_values(array_diff($items, $params));    return $items;}

Examples:

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

Examples:

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

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

function remove($items, $func)

{

   $filtered = array_filter($items, $func);


   return array_diff_key($items, $filtered);

}

Examples:

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

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

function tail($items){    return count($items) > 1 ? array_slice($items, 1) : $items;}

Examples:

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

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

function take($items, $n = 1){    return array_slice($items, 0, $n);}

Examples:

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

筛选出给定值之外的数组元素。

function without($items, ...$params){    return array_values(array_diff($items, $params));}

Examples:

without([2, 1, 2, 3, 5, 8], 1, 2, 8); // [3, 5]
orderBy

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

function orderBy($items, $attr, $order)

{

   $sortedItems = [];

   foreach ($items as $item) {

       $key = is_object($item) ? $item->{$attr} : $item[$attr];

       $sortedItems[$key] = $item;

   }

   if ($order === 'desc') {

       krsort($sortedItems);

   } else {

       ksort($sortedItems);

   }


   return array_values($sortedItems);

}

Examples:

(    [        ['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']]
相关文章

30秒的PHP代码片段(2)数学 - Math

30秒的PHP代码片段(3)字符串-String & 函数-Function

总结

以上是内存溢出为你收集整理的30 秒理解 PHP 代码片段(1)数组 - Array全部内容,希望文章能够帮你解决30 秒理解 PHP 代码片段(1)数组 - Array所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167304.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存