<?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;
    }
}