php練習問題3

php練習問題2では、配列を降順、昇順に並び替える事を学びました。
では、練習問題3では、練習問題2の内容を関数を使って処理を行う事を学びます
関数を使う事で、降順、昇順を一つの関数で定義できる利点を学びます。

関数を使って降順、昇順並び替えサンプルプログラムで確認してみましょう

<?php
/**
* 昇順に並び替える
* @param array $array
* @param int $i
* @param int $j
* @return array $array
*/
function asc(array $array, int $i, int $j): array
{
    if ($array[$i] > $array[$j]) {
        // 変数$tmpに$array[$i]を代入する
        $tmp = $array[$i];
        // $array[$i]に$aarray[$j]の値を代入する
        $array[$i] = $array[$j];
        // $array[$j]に$tmpの値を代入する
        $array[$j] = $tmp;
    }
    return $array;
}

/**
* 降順に並び替える
* @param array $array
* @param int $i
* @param int $j
* @return array $array
*/
function desc(array $array, int $i, int $j): array
{
    if ($array[$i] < $array[$j]) {
        // 変数$tmpに$array[$i]を代入する
        $tmp = $array[$i];
        // $array[$i]に$aarray[$j]の値を代入する
        $array[$i] = $array[$j];
        // $array[$j]に$tmpの値を代入する
        $array[$j] = $tmp;
    }
    return $array;
}

/**
* ソートを行う関数
* 並び順は$sortによって振り分ける
*
* @param array $array
* @param string $sort
* @return array $array
*/
function arraySort(array $array, string $sort = 'desc'): array
{
    // 配列の要素数を取得
    $count = count($array);
    $i = 0;
    for (; $i < $count; $i++) {
        for ($j = $i + 1; $j < $count; $j++) {
            // $array[$i]の次の要素$array[$j]を比較する
            if ($sort === 'asc') {
                $array = asc($array, $i, $j);
            } else {
                $array = desc($array, $i, $j);
            }
        }
    }
    return $array;
}

// 配列を定義
$array = [30, 5, 90, 16];
$array = arraySort($array, 'asc');
var_dump($array);
$array = arraySort($array);
var_dump($array);
?>

上記のコードをコピペして下記のサイトで実際にPHPコードを実行してみましょう
本サイトでは、基礎的な学習は開発環境を構築しないで、webで実行します。
コピペで動作したら、今度は自分で実際にコードをトレースしてコーディングしてみましょう
効率的にプログラムを学習するなら必ず、手打ちすることです。
打つことで、アウトプットして覚えていきます。

ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO
paiza.IOはオンラインですぐにプログラミングが始められる、オンライン実行環境です。Java,Ruby,Python,PHP,Perlなど主要24言語に対応。プログラミング学習にも。
タイトルとURLをコピーしました