<?php

namespace App\Http\Helper;

class Helper {

    /**
     * Summary of findNextStepsIDs
     * @param array $arr 目標陣列
     * @param mixed $targetID 指定的value
     * @param mixed $count 尋找組數
     * @return array
     */
    function findArrayTargetIndex(array $arr, $target, mixed $count) {
        // 找到指定value 的Index
        $targetIndex = array_search($target, $arr);

        $indexCount = count($arr);

        // 如果指定的value不存在陣列中，則回傳空陣列
        if ($targetIndex === false) {
            return [];
        }

        $result = [];
        //列出總共想找的序列Index, 正數為後 N 篇 ， 負數為前 N 篇
        $loopCount = is_array($count) ? $count : [$count];
        foreach($loopCount as $num){
            for($i = 1; $i <= abs($num); $i++){
                //假設如果往 前/後 已經沒有的話就走循環
                if($num < 0){
                    $result[] = isset($arr[$targetIndex - $i]) ? $arr[$targetIndex - $i] : $arr[$targetIndex - $i + $indexCount];
                }else{
                    $result[] = isset($arr[$targetIndex + $i]) ? $arr[$targetIndex + $i] : $arr[$targetIndex + $i - $indexCount];
                }
            }
        }

        return $result;
    }
}
