PHP 程序将数组元素右移


2022 年 4 月 28 日, Learn eTutorial
1802

数组中的右移是什么意思?

在这个程序中,我们将把数组中的元素右移 n 次。为了对元素执行右移,我们首先要给变量 n 赋值,以将数组元素的索引右移 n 次。

例如,如果数组是 5, 9, 8, 6, 7, 3, 4, 2, 1 并且 n3,那么输出将是 4, 2, 1, 5, 9, 8, 6, 7, 3

Right shift elements in an array

如何使用 PHP 右移数组中的元素?

对于这个程序,为了右移数组中的元素,我们取赋给数组 a[ ] 的静态值。然后我们需要将数组需要右移的次数赋值给变量 n,并使用内置函数 count() 将数组的大小赋值给变量 len。之后,我们将值 0 赋给变量 i,并执行 for 循环,直到条件 'i < n' 为假,并且在每次迭代中递增变量 i 的值。在循环块中,我们将 a[len - 1] 的元素赋值给变量 temp,然后我们再打开一个 for 循环,将值 'len - 1' 赋值给变量 j,执行循环直到条件 'j > 0' 为假,并且在每次迭代中递减变量 j 的值。在循环块中,我们将 a[j - 1] 的值移到 a[j] 中。第二个循环完成后,我们将变量 temp 的值赋给 a[0]。主循环完成后,我们可以打印数组 a[ ] 作为右移后的数组。

算法

步骤 1: 用值初始化数组 a[ ]

步骤 3: 将数组需要右移的次数赋值给变量 n

步骤 4: 使用内置函数 count() 将数组的大小赋值给变量 len

步骤 5: 打印数组 a[ ] 中的元素

步骤 6: 为了将数组元素右移 n 次,首先将值 0 赋给变量 i,并执行子步骤,直到条件 'i < n' 变为假,并在每次迭代中递增变量 i 的值

  1. a[len - 1] 的元素赋值给变量 temp
  2. 将值 'len - 1' 赋给变量 j,并将 'a[j - 1] 的值赋给变量 a[j],直到条件 'j > 0' 变为假,并在每次迭代中递减变量 j 的值
  3. temp 的值赋给数组 a[0]

步骤 7: 步骤 6 完成后,打印数组 a[ ] 的元素,作为右移 n 次后的结果。

PHP 源代码

                                          <?php
$a = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$n = 4;
$len = count($a);
echo "Elements in the array: \n";
for ($i = 0; $i < $len; $i++) {
    echo "$a[$i] ";
}
for ($i = 0; $i < $n; $i++) {
    $temp = $a[$len - 1];
    for ($j = $len - 1; $j > 0; $j--) {
        $a[$j] = $a[$j - 1];
    }
    $a[0] = $temp;
}
echo "\nArray after the right shift of $n times:\n";
for ($i = 0; $i < $len; $i++) {
    echo "$a[$i] ";
}
                                      

输出

Elements in the array:
1 2 3 4 5 6 7 8 9
Array after the right shift of 4 times:
6 7 8 9 1 2 3 4 5