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