diff options
Diffstat (limited to 'src/application/mystic/forum/utils/ArrayUtils.php')
-rw-r--r-- | src/application/mystic/forum/utils/ArrayUtils.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/application/mystic/forum/utils/ArrayUtils.php b/src/application/mystic/forum/utils/ArrayUtils.php new file mode 100644 index 0000000..ed77c6d --- /dev/null +++ b/src/application/mystic/forum/utils/ArrayUtils.php @@ -0,0 +1,33 @@ +<?php +declare(strict_types=1); + +namespace mystic\forum\utils; + +final class ArrayUtils { + use StaticClass; + + public static function repeat(mixed $value, int $count): array { + $arr = []; + for ($i = 0; $i < $count; ++$i) + $arr []= $value; + return $arr; + } + + public static function fill(\Closure $factory, int $count): array { + $arr = []; + for ($i = 0; $i < $count; ++$i) + $arr []= $factory($i, $count); + return $arr; + } + + public static function assocFromPairs(array $pairs): array { + return array_combine(array_column($pairs, 0), array_column($pairs, 1)); + } + + public static function asPairs(array $arr): array { + $out = []; + foreach ($arr as $k => $v) + $out []= [$k, $v]; + return $out; + } +} |