melvdouc/array-utils

Some JavaScript-inspired array utility functions for my personal use.

v1.0.0 2023-08-29 22:21 UTC

This package is auto-updated.

Last update: 2024-09-30 00:28:52 UTC


README

Some JavaScript-inspired array utility functions for my personal use.

Examples

bubbleSort

$lotteryNumbers = [15, 4, 16, 42, 23, 8];
ArrayUtils::bubbleSort($lotteryNumbers, function (int $a, int $b) {
  return $a - $b;
}); // [ 4, 8, 15, 16, 23, 42 ]

every & some

$numbers = [1, 2, 3];

function isEven(int $n)
{
  return $n % 2 === 0;
}

ArrayUtils::every($numbers, "isEven"); // false
ArrayUtils::some($numbers, "isEven"); // true

find

$firstEvenNumber = ArrayUtils::find($numbers, "isEven"); // 2

flatten

ArrayUtils::flatten([1, [2, [3], 4]]);
// ↪ [ 1, 2, [ 3 ], 4 ]
ArrayUtils::flatten([1, [2, [3], 4]], INF);
// ↪ [ 1, 2, 3, 4 ]

from

$squareNumbers = ArrayUtils::from(3, fn ($i) => ($i + 1) ** 2);
// ↪ [ 1, 4, 9 ]

groupBy

$numbersByParity = ArrayUtils::groupBy($numbers, function (int $n) {
  return ($n % 2 === 0) ? "even" : "odd";
});
// ↪ [ "odd" => [ 1, 3 ], "even" => [ 2 ] ]