-
PHPで非クラスオブジェクト(stdClass)のプロパティ構造を継承してnull値を持つオブジェクトを作成する方法
PHPでは、クラスを定義せずに (object) キャストを使って生成したオブジェクト(stdClass)について、元のオブジェクトが持つプロパティ名だけを引き継ぎ、値はすべて null にした新しいオブジェクトを作りたいケースがあります。この記事では、その実現方法として2つのアプローチを紹介します。 方法1:cloneとforeachを組み合わせる まず clone でオブジェクトを複製し、その後 foreach ループで各プロパティ名を取得しながら、順番に null を代入していきます。これにより、プロパティの構造(名前と数)はそのままに、中身だけを空にしたオブジェクトが得られます。 コー
-
PHPの正規表現で特定の文字だけを置き換える方法|preg_replace()と先読みアサーションの活用
PHPで文字列内の特定のパターンに一致する部分だけを置き換えたい場合は、preg_replace() 関数を使用します。この関数は正規表現と組み合わせることで、柔軟かつ高度な文字列置換を実現できます。処理の概要たとえば、次のような入力文字列があるとします。FirstName|John |LastName|Smith|SalaryProvided|2000|5000ここで期待する出力は、2つの連続する4桁の数字(2000と5000)の間にある「|」だけを半角スペースに置き換えるというものです。それ以外の「|」はそのまま残します。FirstName|John |LastName|Smith|Sal
-
PHPで特定の値を基準に文字列を分割・抽出する方法|preg_match_all()の使い方
文字列を特定の値(キーワード)を基準に分割したい場合は、preg_match_all() 関数を使用します。この関数は、指定した正規表現パターンに一致するすべての箇所を配列として抽出できるため、区切り文字ではなく「取り出したい語句」があらかじめ決まっているケースに特に便利です。ここでは、次のように複数の単語が連結された文字列を例に考えます。$values = javamysqlphpmongodbpythonspringhibernatephp;この文字列から、以下の3つのキーワードを抜き出して分割することを目指します。javahibernatephpサンプルコードPHPコードは以下のとおりで
-
PHPで引数を参照渡しする方法をわかりやすく解説
PHPでは、関数のパラメータ名の前に & を付けることで、引数を参照渡し(リファレンス渡し)することができます。通常の値渡しでは関数内での変更が呼び出し元に反映されませんが、参照渡しを使えば、関数の中で行った変更が元の変数にも直接反映されます。基本構文function 関数名(&$変数) { // 処理}サンプルコード以下は、参照渡しを使って変数の値を書き換える具体的な例です。<!DOCTYPE html><html><body><?phpfunction referenceDemo(&am
-
PHPで金額をfloat型に変換してround()で正しく丸める方法
PHPで金額などの数値を丸めたい場合は、round()関数を使用します。さらに、計算精度を確保するためにfloat型へ明示的にキャストすると安全です。入力値の例ここでは、次のような値を扱います。$amount = 50.78; $quantity = 45.5;float型への変換と丸め処理round()で小数第4位まで丸めたうえで、(float)キャストによりfloat型へ変換します。$am = (float) round($amount, 4); $quant = (float) round($quantity, 4);サンプルコード実際のPHPコードは以下の通りです。<!DOCTY
-
PHPのpreg_split()でハイフンを基準に文字列を分割する方法
PHPのpreg_split()関数を使用すると、正規表現パターンに一致した区切り文字を基準に、文字列を配列へ分割できます。本記事では、ハイフン(-)を含む文字列を「直後に数字が続くハイフンだけ」を目安に分割する方法を解説します。 分割したい入力値 例として、次のように数字と文字列がハイフンで連結された入力値を想定します。 $values = ABC-DEF IJKL-3553435-8990987876; この文字列から、以下のような出力結果を得たいとします。 Array ( [0] => ABC-DEF IJKL [1] => 3553435 [2] => 899
-
PHPで文字列からコンマを削除する方法【str_replace()の使い方】
文字列からコンマ(カンマ)を削除したい場合は、置換処理を行います。PHPでは、文字列の置換に使える str_replace() 関数を利用するのが最もシンプルな方法です。 基本の考え方 str_replace() は「検索対象の文字列」「置換後の文字列」「対象の文字列」の3つの引数を受け取り、検索対象に一致した部分をすべて置換します。コンマを空文字列 に置き換えることで、実質的にコンマを削除できます。 たとえば、次のようなコンマを含む入力文字列があるとします。 $name = John,Smith; この文字列からコンマを削除すると、期待される出力は以下のようになります。 JohnSmith
-
PHPで特定の文字列を含む配列要素を検索する方法【preg_match()の使い方】
はじめにPHPでは、配列の中から特定の文字列を含む要素だけを取り出したい場面がよくあります。例えば、次のような配列があったとしましょう。$subject = array(JavaScript, Java, PHP language, Python Language);この配列から、「Language」という文字列を含む値だけを取得したい場合を考えてみます。$valueToSearch = Language;preg_match()を使った文字列検索このような部分一致の検索を行うには、PHPのpreg_match()関数を使用します。preg_match()は、正規表現パターンに一致するかどうか
-
PHPのpreg_match_all()で文字列から不要な文字(記号)だけを抽出して表示する方法
PHPでは、preg_match_all() 関数を使うことで、文字列から不要な文字(英字やスペース以外の記号など)だけを簡単に抽出して表示できます。本記事では、具体的なサンプルコードとともにその方法を解説します。抽出対象となる文字列の例たとえば、次のように特殊文字を含む文字列があったとします。$sentence = M-y Name/i_s John+Doe;この文字列から、英字以外の特殊文字だけを抜き出し、次のような出力を得るのが目的です。-/_+正規表現パターンのポイント今回使用する正規表現は /[^a-zA-Z ]/ です。このパターンの意味は以下のとおりです。[a-zA-Z ] …
-
PHPでURLの最後の部分を取得する方法
URLの最後の部分(末尾のセグメント)を取得するには、PHPのpreg_match()関数を使用します。正規表現を組み合わせることで、URL末尾の数字や文字列を簡単かつ確実に抽出できます。 入力例 以下のようなURLが入力だとします。 $websiteAddress = https://www.tutorialspoint.com/java/java_questions_answers/9989809898; 期待される出力 このURLから、最後の部分にあたる数字「9989809898」だけを取り出します。 9989809898 サンプルコード 以下は、preg_match()を使ってU
-
PHPでJSONから値を正しく取得する方法をわかりやすく解説
JSONから値を取得する基本:json_decode()の使い方JSON形式のデータから特定の値を取り出すには、PHPのjson_decode()関数を使用します。この関数を使うと、JSON文字列をPHPの配列やオブジェクトに変換でき、その後は通常の配列アクセスと同じ要領で目的の値を取得できます。例として、以下のようなJSONデータを想定します。$detailsJsonObject = {details:[{name:John,subjectDetails:{subjectId:101,subjectName:PHP,marks:58,teacherName:Bob}}]};このデータから「教
-
PHPのforeachループとif条件で2つの配列から一致する値を見つける方法
PHPでは、foreachループとif文を組み合わせることで、2つの配列に共通して存在する値(一致する値)を簡単に見つけることができます。本記事では、その基本的な実装方法をサンプルコード付きで解説します。 前提となる配列の準備 まず、比較対象となる次の2つの配列を用意します。 $firstArray = array(10, 20, 30, 40, 50); $secondArray = array(100, 80, 30, 40, 90); この2つの配列に共通する値は 30 と 40 です。つまり、期待する出力結果は以下のようになります。 30 40 foreachループとif条件を使った実
-
PHPのpreg_split()でマルチバイトUTF-8文字列を正しく分割し、空の区切り文字の問題を解決する方法
PHPで文字列を1文字ずつに分割したい場合、preg_split()関数を使用します。しかし、マルチバイトのUTF-8文字列(日本語など)を扱う際、単純なパターン指定では文字が正しく分割されなかったり、空の区切り文字に関する問題が発生したりすることがあります。 この問題を解決するには、パターンにUTF-8モードを有効にする修飾子「u」を付け、//uのように指定します。 解決方法 まず、preg_split()を使用し、パターンを次のように設定します。 '//u' このように//uを指定すると、正規表現エンジンがUTF-8モードで動作するため、マルチバイト文字列でも各文字を正しく
-
PHPのechoで同じ行に太字テキストと通常テキストを表示する方法
はじめに PHPのecho文を使って、同じ行に「太字のテキスト」と「通常のテキスト」を一緒に表示したいケースはよくあります。このような場合、HTMLの<span>タグにCSSスタイルを適用するのが最もシンプルな方法です。太字を実現するには、CSSのfont-weightプロパティを使用します。 サンプルコード 以下は、echo文の中で<span>タグを使ってスタイル付きテキストを出力するPHPコードの例です。 <!DOCTYPE html> <html> <body> <?php echo '<span sty
-
【PHP】変数に格納した文字列から関数を呼び出す方法(可変関数の使い方)
PHPでは、変数に格納された文字列を利用して関数を呼び出すことができます。この機能は「可変関数」と呼ばれ、変数名の後ろに括弧 () を付けるだけで、その変数に格納されている文字列と同じ名前の関数が自動的に実行されます。動的に処理を切り替えたい場合や、コールバック処理を実装したい場合などに非常に便利な機能です。可変関数の基本構文変数に関数名を文字列として代入し、変数名に括弧を付けて呼び出します。$func = anyFunctionName; $func(); // anyFunctionName() が実行されるサンプルコード以下は、変数に格納した文字列「hello」から関数を呼び出すPHPの
-
PHPで1時間前の日時を取得して表示する方法
PHPで1時間前の時刻を表示したい場合は、現在時刻から1時間分だけ減算します。これには strtotime() 関数を使うのが簡単です。引数に「-1 hour」を指定すれば1時間前、「-2 hour」を指定すれば2時間前、「-3 hour」なら3時間前というように、任意の時間差を柔軟に設定できます。例として、現在の時刻が次の通りであるとします。18:42:22サンプルコード以下が実際のPHPコードです。現在の日時から strtotime(-1 hour) で1時間前のタイムスタンプを取得し、date() 関数で「年-月-日 時:分:秒」の形式に整形しています。<!DOCTYPE html
-
【PHP】preg_splitで文字と数字を別々の配列に分割する方法
PHPでは、正規表現による文字列分割に使える preg_split() 関数と、配列の先頭・末尾の要素を取り除く array_shift()・array_pop() を組み合わせることで、文字列から英字と数字をそれぞれ別の配列に分離できます。例として、次のように英字と数字が混在した文字列を考えてみましょう。$values = 5j4o5h8n;この文字列を「数字だけの配列」と「英字だけの配列」に分割するのが目的です。実装例実際のPHPコードは以下のようになります。<!DOCTYPE html> <html> <body> <?php $values =
-
PHPで文字列から改行を削除し、半角スペース1つに置き換える方法
次のような、改行を含む文字列があるとします。$sentence = My name is John Smith My Favorite subject is PHP. ;この文字列から改行をすべて取り除き、半角スペース1つに置き換えたい場合、期待する出力は以下のようになります。My name is John Smith My Favorite subject is PHP.解決方法この処理には trim() 関数を使用し、その内部で preg_replace() を呼び出して置換を行います。正規表現パターン「/\s\s+/」は、2つ以上連続する空白文字(改行・タブ・スペースなど)にマッチし、
-
PHPで3つの文字列(年・月・日)を組み合わせて次の日付を計算する方法
PHPでは、カンマ区切りの3つの文字列(年・月・日)から、基準日よりも後の日付を求めたいケースがあります。このような場合、3重のループ(foreach)を使って年・月・日の組み合わせを順番に調べ、基準日より後の日付が見つかった時点でその値を変数に格納する方法が有効です。実装のポイントまず、explode() 関数を使ってカンマ区切りの文字列を配列に変換します。その後、年・月・日の3重ループで組み合わせを生成し、文字列として比較することで次の日付を特定します。見つかったら break 3 ですべてのループを抜け出すのがポイントです。サンプルコード以下がPHPのコード例です。<!DOCTYP
-
PHPでランダムな一意の数値配列を生成する方法
PHPで重複のない(一意な)ランダムな数値の配列を生成したい場合は、range()関数とshuffle()関数を組み合わせて使用します。基本的な仕組み手順は以下の通りです。range():指定した範囲内の連続した数値を持つ配列を作成します。shuffle():配列の要素をランダムに並べ替えます。これにより、各数値が1回ずつ含まれた状態が保たれるため、重複のないランダムな配列になります。array_slice():シャッフル後の配列から必要な個数だけ要素を取り出します。サンプルコード以下に、10〜20の範囲から5つのランダムな一意の数値を取得するPHPコードの例を示します。<!DOCTYP