Code Duplication    Length = 15-24 lines in 5 locations

src/Arrayy.php 5 locations

@@ 3247-3270 (lines=24) @@
3244
     * @psalm-return static<TKey,T>
3245
     * @psalm-mutation-free
3246
     */
3247
    public function invoke($callable, $arguments = []): self
3248
    {
3249
        // If one argument given for each iteration, create an array for it.
3250
        if (\is_array($arguments) === false) {
3251
            $arguments = \array_fill(
3252
                0,
3253
                $this->count(),
3254
                $arguments
3255
            );
3256
        }
3257
3258
        // If the callable has arguments, pass them.
3259
        if ($arguments) {
3260
            $array = \array_map($callable, $this->toArray(), $arguments);
3261
        } else {
3262
            $array = $this->map($callable);
3263
        }
3264
3265
        return static::create(
3266
            $array,
3267
            $this->iteratorClass,
3268
            false
3269
        );
3270
    }
3271
3272
    /**
3273
     * Check whether array is associative or not.
@@ 3844-3858 (lines=15) @@
3841
     * @psalm-return static<int|TKey,T>
3842
     * @psalm-mutation-free
3843
     */
3844
    public function mergeAppendKeepIndex(array $array = [], bool $recursive = false): self
3845
    {
3846
        if ($recursive === true) {
3847
            $array = $this->getArrayRecursiveHelperArrayy($array);
3848
            $result = \array_replace_recursive($this->toArray(), $array);
3849
        } else {
3850
            $result = \array_replace($this->toArray(), $array);
3851
        }
3852
3853
        return static::create(
3854
            $result,
3855
            $this->iteratorClass,
3856
            false
3857
        );
3858
    }
3859
3860
    /**
3861
     * Merge the new $array into the current array.
@@ 3876-3890 (lines=15) @@
3873
     * @psalm-return static<TKey,T>
3874
     * @psalm-mutation-free
3875
     */
3876
    public function mergeAppendNewIndex(array $array = [], bool $recursive = false): self
3877
    {
3878
        if ($recursive === true) {
3879
            $array = $this->getArrayRecursiveHelperArrayy($array);
3880
            $result = \array_merge_recursive($this->toArray(), $array);
3881
        } else {
3882
            $result = \array_merge($this->toArray(), $array);
3883
        }
3884
3885
        return static::create(
3886
            $result,
3887
            $this->iteratorClass,
3888
            false
3889
        );
3890
    }
3891
3892
    /**
3893
     * Merge the the current array into the $array.
@@ 3907-3921 (lines=15) @@
3904
     * @psalm-return static<TKey,T>
3905
     * @psalm-mutation-free
3906
     */
3907
    public function mergePrependKeepIndex(array $array = [], bool $recursive = false): self
3908
    {
3909
        if ($recursive === true) {
3910
            $array = $this->getArrayRecursiveHelperArrayy($array);
3911
            $result = \array_replace_recursive($array, $this->toArray());
3912
        } else {
3913
            $result = \array_replace($array, $this->toArray());
3914
        }
3915
3916
        return static::create(
3917
            $result,
3918
            $this->iteratorClass,
3919
            false
3920
        );
3921
    }
3922
3923
    /**
3924
     * Merge the current array into the new $array.
@@ 3939-3953 (lines=15) @@
3936
     * @psalm-return static<TKey,T>
3937
     * @psalm-mutation-free
3938
     */
3939
    public function mergePrependNewIndex(array $array = [], bool $recursive = false): self
3940
    {
3941
        if ($recursive === true) {
3942
            $array = $this->getArrayRecursiveHelperArrayy($array);
3943
            $result = \array_merge_recursive($array, $this->toArray());
3944
        } else {
3945
            $result = \array_merge($array, $this->toArray());
3946
        }
3947
3948
        return static::create(
3949
            $result,
3950
            $this->iteratorClass,
3951
            false
3952
        );
3953
    }
3954
3955
    /**
3956
     * @return ArrayyMeta|static