-
PHPでのリダイレクト実装方法|header関数の基本と使い方を解説
PHPでは、組み込み関数であるheader関数を使うことで、ユーザーをあるページから別のページへリダイレクト(転送)できます。header関数は、生のHTTPヘッダーをクライアント(ブラウザ)に送信するための関数で、ページの転送以外にも、コンテンツタイプの指定やキャッシュ制御など、さまざまなHTTPヘッダーの操作に利用されます。 header関数の構文 header( $header_value, $replace_value, $http_response_code) header関数には、以下の3つのパラメータを指定できます。 $header_value:送信するヘッダー文字列を指定しま
-
PHPで配列内の値の標準偏差を求めるプログラムの書き方
配列に含まれる複数の数値から標準偏差を算出したい場面は、統計処理やデータ分析においてよくあります。PHPでは、自作関数を用意することで簡単に標準偏差を計算できます。以下に具体的な実装例を示します。サンプルコード<?php function std_deviation($my_arr) { $no_element = count($my_arr); $var = 0.0; $avg = array_sum($my_arr)/$no_element; foreach($my_arr as $i) { $var += pow(($i -
-
PHPで配列から欠落している要素を見つける方法
PHPでは、array_diff 関数を利用することで、配列の中に存在しない(欠落している)要素を簡単に検出できます。この記事では、連続する数値の範囲から欠けている要素を特定するサンプルコードを紹介します。 サンプルコード <?php function absent($my_list) { $my_array = range(min($my_list), max($my_list)); return array_diff($my_array, $my_l
-
PHPの配列から重複する要素を削除する方法(array_flip活用)
PHPの配列から重複する要素を取り除きたい場合、array_flip 関数を利用する方法があります。この関数は、配列のキーと値を入れ替える(値をキーに、キーを値に反転させる)働きを持つため、これを2回繰り返すことで重複要素を効率的に除去できます。サンプルコード<?php $my_arr = array(45, 65, 67, 99, 81, 90, 99, 45, 68); echo The original array contains \n;  
-
PHPで重複する値を多次元配列にマージする方法
PHPでは、年齢・名前・趣味といった情報を持つ連想配列のリストから、特定のキー(ここでは「趣味」)を基準にデータをグループ化し、重複する値をひとつの多次元配列にまとめることができます。以下にその実装例を示します。 サンプルコード <?php $my_arr = array( array(Age=>23, name=>Joe, hobby=>Cycling), array(Age=>26, name=>Hannah, hobby=>Rowing), &nbs
-
【PHP】配列から空の要素(null・空文字列)を削除する方法
PHPで配列から空の要素(null、空文字列など)を削除したい場合は、foreachループとempty()関数、unset()関数を組み合わせることで実現できます。以下に具体的なサンプルコードを示します。サンプルコード<?php $my_array = array(This, 91, , null, 102, is, false, a, sample, null); foreach($my_array as $key => $val) if(empty($val)) unset($my_array[$key]); echo 配列からn
-
PHPで配列が空かどうかを判定する方法まとめ(sizeof・empty関数の使い方)
PHPでは、配列が空(要素が1つも入っていない状態)かどうかを確認したい場面がよくあります。この記事では、代表的な2つの方法——sizeof関数とempty関数を使った判定方法を、実際のコード例とともにわかりやすく解説します。 方法1:sizeof関数を使う sizeof関数は、配列に含まれる要素数を返す関数です。count関数のエイリアスとしても知られており、戻り値が0であれば、その配列が空であることを意味します。 コード例 <?php $empty_arr = array(); if( sizeof($empty_arr) == 0 ) echo "配列は空です!&
-
PHPで配列が多次元かどうかを判定する方法
PHPでは、「rsort」関数を利用することで、配列が多次元(ネストされた配列)であるかどうかを簡単に判定できます。この関数は、チェック対象の配列を1つの引数として受け取り、降順にソートした結果をもとに、配列の先頭要素が配列かどうかを確認します。仕組みのポイント「rsort」は配列を降順にソートするため、多次元配列の場合は配列型の要素が必ず先頭に移動します。そこで、ソート後の最初の要素(インデックス0)が配列であるかを「is_array」で確認すれば、その配列が1次元か多次元かを判別できるという仕組みです。サンプルコード<?php $my_array = array( array
-
PHPの多次元連想配列とは?値の取得方法を実例付きでわかりやすく解説
PHPの多次元配列は複数の配列を格納できる構造で、連想配列は「キー」と「値」のペアでデータを管理します。この2つを組み合わせた多次元連想配列を使うと、データ同士のグループ化された関係性を、ひとつの変数の中に整理して保存できます。 例えば、従業員情報として「名前」「年齢」「生年月日」などの属性を持ち、さらに「職務詳細」の中に「役職」や「給与」をネストして格納するような構造が代表的な例です。 サンプルコード <?php $my_arr = array(); $my_arr[Employee] = array( Name => Joe, Age => 20,
-
PHPでピラミッド状のパターンを出力するプログラムの書き方
PHPでは、ループ処理を組み合わせることで、アスタリスク(*)を使ったピラミッド状のパターンを簡単に出力できます。ここでは、関数を定義して指定した行数分のピラミッドを表示するサンプルコードを紹介します。 サンプルコード <?php function print_pattern($val) { $num = 2 * $val - 2; for ($i = 0; $i < $val; $i++) { for ($j = 0; $j < $num; $j++) &
-
PHPで数字パターンを出力するプログラムの書き方
PHPで数字パターンを出力する方法PHPで数字のパターンを出力するには、以下のコードを使用します。コード例<?php function num_pattern($val) { $num = 1; for ($m = 0; $m < $val; $m++) { for ($n = 0; $n <= $m; $n++ ) { echo $num.&quo
-
PHPで三角形の形に連続した数字を出力するプログラム
PHPで三角形の形に連続した数字を出力したい場合、以下のようなコードを使用します。サンプルコード<?php function continuous_pattern($val) { $num = 1; for ($m = 0; $m < $val; $m++) { for ($n = 0; $n <= $m; $n++) { echo $num. ; $num = $num + 1; } echo \n; } } $val = 4; c
-
PHPで連続する英字パターンの三角形を出力する方法
PHPで連続する英字(アルファベット)パターンの三角形を出力する方法を解説します。星(アスタリスク)や数字を使ったパターン出力と考え方は同じですが、今回は連続したアルファベットを出力する点が特徴です。 サンプルコード <?php function continuous_alphabets($val) { $num = 65; for ($m = 0; $m < $val; $m++) { &n
-
PHPで2つの日付間の日数を求める方法|date_diff関数の使い方を解説
PHPでは、date_diff関数を使うことで、指定した2つの日付の差(日数)を簡単に求めることができます。この関数は組み込み関数であり、日数の差が正常に計算できた場合にはDateIntervalオブジェクトを返し、計算できなかった場合にはfalseを返します。 サンプルコード <?php $date_1 = date_create('23-11-2019'); $date_2 = date_create('22-1-2020'); $day_diff = date_diff($date_1, $date_2); echo $day_diff->f
-
【PHP】指定した2つの日付範囲の間に含まれる各曜日の日数をカウントするプログラム
PHPで指定した2つの日付範囲(開始日〜終了日)の間に、各曜日がそれぞれ何日含まれるのかを求める方法を紹介します。DateTimeクラスとdate関数を組み合わせることで、シンプルなコードで実装できます。サンプルコード<?php $start = "11-11-2019"; $end = "12-12-2019"; $week_day = array('Monday' => 0,
-
【PHP入門】2つの日付を比較する方法|サンプルコード付きで解説
PHPで日付を比較する基本的な方法PHPでは、DateTimeクラスで生成した日付オブジェクト同士を、数値と同じように比較演算子(> や <)で直接比較することができます。ここでは、2つの日付の前後関係を判定するシンプルなサンプルコードを紹介します。サンプルコード<?php $date_1 = new DateTime("2020-11-22"); $date_2 = new DateTime("2011-11-22"); if ($date_1 > $date_2) echo $d
-
PHPで配列内の日付をソートする方法(usort関数の使い方を解説)
PHPで配列として渡された複数の日付を並べ替えたい場合は、usort()関数とユーザー定義の比較関数を組み合わせることで簡単に実現できます。ここでは、具体的なサンプルコードと実行結果をもとに、そのやり方をわかりやすく解説します。サンプルコード<?php function compare_dates($time_1, $time_2) { if (strtotime($time_1) > strtotime($time_2)) return
-
PHPでfloat値(浮動小数点数)を正しく比較する方法
PHPでfloat値(浮動小数点数)を比較する場合、== 演算子による直接比較は内部誤差の影響を受けやすいため注意が必要です。そこで一般的に使われるのが、2つの値の差の絶対値が許容誤差より小さいかどうかを判定する方法です。以下にそのサンプルコードを示します。 サンプルコード <?php $val_1 = 56.5325; $val_2 = 90.899; $val_3 = 0.11; if(abs($val_1 - $val_2) < $val_3) { echo "The values are same"; } else { &nbs
-
PHPで数値のワンタイムパスワード(OTP)を生成するプログラムの書き方
Webアプリケーションにおいて、ワンタイムパスワード(OTP)は二段階認証や本人確認などで広く利用されています。この記事では、PHPを使って指定した桁数の数値のみで構成されたワンタイムパスワードを生成する方法を解説します。 基本的な実装例 以下のコードは、関数を定義して任意の桁数の数値OTPを生成するシンプルな例です。 <?php function generate_otp($n) { // 使用する数字(0〜9) $gen = 1357902468; $res = ; // 指定された桁数分だけランダムに1文字ずつ抽出する for ($i = 1
-
PHPでランダムな文字列を生成する3つの方法【bin2hex・sha1・uniqid】
PHPでの開発では、確認用トークンや一時的なID、パスワードの初期値など、ランダムな文字列を生成したい場面がよくあります。本記事では、PHPでランダム文字列を作成できる代表的な3つの方法を、サンプルコードと実行結果つきでわかりやすく解説します。 方法1:bin2hex関数とrandom_bytes関数を使う サンプルコード <?php $num = 12; $res = bin2hex(random_bytes($num)); print_r("生成されたランダム文字列 : "); echo $res; ?> 実行結果 生成されたランダム文字列 : f1d