php - 在php中,Laravel 生成數字的相對循環序列?

  显示原文与译文双语对照的内容
56 0

我想生成兩個數字序列。我有兩個參數。

:: 值可以是任意數量的,包括 -12.

:: 值可以是 1到inclusive之間的任意數目。

例如

第一:10,秒:3,

然後,對於上面的參數,我需要兩個具有如下值的數組,

10 11 12 1 2 3 4 5 6 7 8 9
3 4 5 6 7 8 9 10 11 12 1 2

更新: 我需要一個函數以參數作為參數,輸出像上面的數組一樣。

有什麼簡單的方法來實現這個?我正在使用php和 Laravel 。

时间:原作者:0个回答

123 5

你可以使用這裡功能:

function transform($array, int $start) {
 while ($array[0]!= $start) {
 $number = array_shift($array);
 $array[] = $number;
 }
 return $array;
}
$first = transform(range(1, 12), 10);
$second = transform(range(1, 12), 3);
原作者:
137 4

你可以使用 range:

$first = 5;
$firstArray = range(1,12);
for ($i = 1; $i <$first; $i++) {
 $firstArray[11] = array_shift($firstArray);
}
var_dump($firstArray);

你也用 array 做同樣的事。

對於函數:

function shiftedArray($int)
{
 $int = $int % 12;
 $array = range(1,12);
 for ($i = 1; $i <$int; $i++) {
 $array[11] = array_shift($array);
 }
 return $array;
}

只要叫它兩次:

$firstArray = shiftedArray(10);
$secondArray = shiftedArray(3);
原作者:
71 3
$first = 3;
$second = 10;
$limit = 12;
$count = 1;
$out1 = $first;
while($out1 <= $limit){
 if($out1 == $limit){
 echo $out1."";
 while($count <$first){
 echo $count."";
 $count++;
 }
 }else{
 echo $out1."";
 }
 $out1++;
}
echo"<br>";
$count = 1;
$out1 = $second;
while($out1 <= $limit){
 if($out1 == $limit){
 echo $out1."";
 while($count <$second){
 echo $count."";
 $count++;
 }
 }else{
 echo $out1."";
 }
 $out1++;
}
原作者:
145 0

根據你給我的輸入我創造了這個函數

function generateArrayRange($parameterOne='')
{
//mimiminum number in array
 $minumumNumber = 1;
//maximum number array number in array
 $maximumNumber =12;
//getting the first part of array
 $firstArrayDummyFirst = range($parameterOne, $maximumNumber);
//getting the second part of array
 $firstArrayDummySecond = range($minumumNumber, $parameterOne-1);
//merging both to the single array 
 $parmOneArray = array_merge($firstArrayDummyFirst,$firstArrayDummySecond);
//returing the generated array with unique
 return ($parmOneArray);
}

你的輸入可能是 print_r(generateArrayRange(10));

那麼結果就是

Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 1 [4] => 2 [5] => 3 [6] => 4 [7] => 5 [8] => 6 [9] => 7 [10] => 8 [11] => 9 )

你的輸入可能是 print_r(generateArrayRange(3));

那麼結果就是

Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 [7] => 10 [8] => 11 [9] => 12 [10] => 1 [11] => 2 )

希望對我的英語有幫助

原作者:
...