PHP:ある配列に対する処理を繰り返したい。

前回もそうだったが、処理は、できたけど、その処理を与えられた回数分繰り返す必要があった。
ただ、ループ後に、変数名が異なって、最初の処理に戻るときに、処理したい配列が、初期化されていた。

やりたいこと

1連の処理を終えた後、その配列に再度、同じ1連の処理をしたい。

解決策

最後の処理で作られる配列の変数名を、最初の処理で使う配列の変数名と、同じにする。

    list($n, $m, $k) = explode(' ', trim(fgets(STDIN))); // 型;string
    $N = (int) $n;
    $M = (int) $m;
    $K = (int) $k;

    $cardsArr = [];
    
    // $N 枚の数字の配列を作る
    for($i = 0; $i < $N; $i++) {
        $cardsArr[] = $i + 1;
    }
    
 // ※このループにおいて、array_chunk()の 引数で扱う配列名:$cardsArr と、
// 最後の array_merge() で作られる配列名を $cardsArr にすること。
    for ($i = 0; $i < $K; $i++) {
        $newArr = array_chunk($cardsArr, $M);
        $reverseArr = array_reverse($newArr);
        $cardsArr = array_merge(...$reverseArr);
    }
    foreach ($cardsArr as $val) {
        echo $val . PHP_EOL;
    }

感想

こう考えると、大して難しいロジックは、書いていないな〜...