• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

リクルートサイトはこちら >

PHP分割関数の私的ベストプラクティス

2016年12月22日

  • このエントリーをはてなブックマークに追加

こんばんは、Webプログラマの篠田です。

あと、10回ほど寝るとお正月ですね。まだ、クリスマスも残していますが2016年の私の回は今回で終りとなります。
次回は「あけおめ」でスタートすることになりそうです。

さて、今回は「PHPの意外と知っているようで知っている??」シリーズと題して「文字列」の「分割」に関してご紹介していきます。

この記事の目次

  • 1 お使いのプログラムに非推奨・削除な関数いませんか?
  • 2 正規表現嫌いの方におすすめな分割関数
  • 3 まとめ

お使いのプログラムに非推奨・削除な関数いませんか?

現在稼働中のシステムの中に「split」関数が、絶賛分割中という方はいらっしゃいませんか?

今更ながらではありますが、「split」関数は、PHP5.3.0で非推奨になり、去年リリースされたPHP7では削除されました。

「split」関数が稼働中のシステムをPHP7に移行してしまうと「call to undefined function split()」のエラーの嵐に巻き込まれてしまいますので、移管は十分にご注意ください。

PHP初心者あるあるですが、Google先生に「PHP 分割」などで調べて古い記事に、さらっと「split」関数が利用されているプログラムソースが公開されていることがありますので、間違って爆弾付きのソースコードをコピー&ペーストして時間の浪費をしないようにご注意ください。

正規表現嫌いの方におすすめな分割関数

まずは「正規表現」というキーワードを聞いて「うげぇ」と反射的に漏らしてしまった方はいませんか?

分割関数の中に「preg_split」関数という、正規表現を使用して文字列を分割するという関数があります。

「preg_split」関数は、第1引数に正規表現によるマッチパターンを指定することで、文字列を分割した配列を返してくれる便利な関数です。

■「preg_split」関数を使った分割方法例

PHP
1
2
3
4
5
<?php
$iataCode = "KIX,HND,NRT,ITM";
$iataList = preg_split("/,/", $iataCode);
 
var_dump($iataList);

■出力結果

1
array(4) { [0]=> string(3) "KIX" [1]=> string(3) "HND" [2]=> string(3) "NRT" [3]=> string(3) "ITM" }

CSVなどでよく見かける「カンマ区切り」の分割をしてみました。

ただ、正規表現を使いましたが「カンマ区切り」などの簡単な分割に正規表現を利用するというのは何だか大げさな気がするのは私だけでしょうか??

このような単純な条件で文字列の分割をする場合は、「お手軽+正規表現なし」で使える「explode」関数を利用するのが良いです。

先程の例を「explode」関数を使って再現してみます。

■「explode」関数を使った分割方法例

PHP
1
2
3
4
5
<?php
$iataCode = "KIX,HND,NRT,ITM";
$iataList = explode(",", $iataCode);
 
var_dump($iataList);

■出力結果

1
array(4) { [0]=> string(3) "KIX" [1]=> string(3) "HND" [2]=> string(3) "NRT" [3]=> string(3) "ITM" }

ぱっと見た感じではあまり変わっていませんが、「正規表現を気にしなくていい」というのは、正規表現アレルギー気味の方には朗報ではないでしょうか??

また、「preg_split」関数は正規表現処理を行う分、正規表現を利用しない「explode」関数の方が速いという特徴もあります。
※短い文字列の分割では、目に見えての速度の違いはありません。

まとめ

PHPの分割処理は、利用する頻度が高い処理の1つです。

こういった使用頻度の高い関数で頭を悩ますのは効率もよくありません。

1つの考え方として「正規表現あり分割=preg_split」「正規表現なし分割=explode」として使い分けるとプログラムソースも分かりやすく、効率良く書けるかもしれません。

次回は、「『分割』のあとは『結合』でしょ!」ということで配列の結合のご紹介をしたいと思います。

では、よいクリスマスを!

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • 828d070c1e9b0e8c43a7f928c1098ea8_m

    Laravel5.6でテンプレートエンジン「Twig」を使えるようにしよう!

    27 8月, 2018

  • PAK_PHPS9V9A6862_TP_V

    Laravelで、フォームが動かないときの対処法

    10 9月, 2018

  • 5050691_s

    Web制作の現場から、JavascriptやPHPの「デバッグ」について考える

    14 9月, 2021

プログラマー募集
  • Next story YouTubeの検索対策を行い、動画の露出を上げる5つの方法
  • Previous story レスポンシブ広告を活用して、制作・出稿コストを削減&配信機会アップを実現しよう!

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.