code: public static function orList(array $items)
      {
          if (count($items) === 0) {
              throw new LogicException('items must not need to be empty.');
          }
          $selected       = array_slice($items, 0, 5);
          $selectedLength = count($selected);
          $firstSelected  = $selected[0];
  
          if ($selectedLength === 1) {
              return $firstSelected;
          }
  
          return array_reduce(
              range(1, $selectedLength - 1),
              static function ($list, $index) use ($selected, $selectedLength) {
                  return $list .
                      ($selectedLength > 2 ? ', ' : ' ') .
                      ($index === $selectedLength - 1 ? 'or ' : '') .
                      $selected[$index];
              },
              $firstSelected
          );
      }
docs: @param string[] $items
  
  @return string