エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

   

配列の中身を「、」でつなげて文字列とする場合の処理の一例

 
配列として取得したデータを「foreach」の繰り返し処理で「読点(、)」を加えて出力しようとした場合、「イヌ、サル、キジ、」という感じになります。
一番最後の「、」を何とかしたい!と思うことが多々ありましたので、こんな処理を考えました。
 
 

配列を foreachで繰り返し処理をした場合の問題点の確認

 
配列を foreachで繰り返し処理をした場合のサンプルが下記になります。
 

 
これだと、
「イヌ、サル、キジ、」
という出力になります。
一番最後の「、」は要らないのに!と思うのです。
 
というのが問題で、最後の「、」がない状態にする処理方法を 3つほど考えてみました。
 
 

配列を文字列で連結してテキストにする関数 implodeを使う方法

 
今回紹介する 3つの方法の中で一番お勧めの方法がこれになります。
配列を文字列で連結してテキストにする関数 implodeを使う方法です。
 

 
ひとまずは出力用の配列に入れなおして、出力をする際に「implode()」関数で連結する方法です。
 
上記は、何か処理を加えることも想定して「foreach()」で繰り返し処理をしていますが、単純に特定のキーの値の配列を作り直すだけならば下記の「array_column()」を使う方が単純な処理になります。
 

 
 

出力した「、」を置換する関数 preg_replaceを使う方法

 
一番最初の foreachで繰り返す処理を生かしつつ、出力する際に最後の「、」を削除する処理方法がこちらになります。
 

 
この処理は多くの方が最初に思い付く処理なんじゃないかと思います。
一番最後の「、」が不要なのでそれを削除するという、考え方としてすごく直球勝負な感じがします。
 
この方法でも問題はないのですが、「正規表現」+「日本語」を置換するという方法が、個人的には好きではないですね。
(日本語を置換するという処理をあまり信用していないためですね。)
 
 

配列の要素数をカウントし最後の要素の時に「、」を付与しない方法

 
最初に配列の要素数をカウントし、最後の要素の順番になった時には「、」を付与しないという方法が下記になります。
 

 
最初に配列の数をカウントして、最後のカウントの時は「、」を出力しないという処理です。
これのメリットしては、foreachの繰り返し処理の中で echoをしている点です。
 
繰り返し処理の中に、他にも実行する処理があるため、繰り返し処理の中で echoをしたいときに使えるでしょう。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説
CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説

CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。

ECCUBEの新規追加ページがInternal Server Error・Not Foundに

ECCUBEで新規追加したページがInternal Server Errorに!原因はファイルのパーミッションの場合が多くその対処方法とプログラムの修正ポイントを解説。Not Foundも解説。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。

ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集

ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い
PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。

数値文字参照コード変換ツール(HTML特殊文字コード変換ツール)

テキストを数値文字参照コード(特殊文字コード)に変換するツール。テキストを数値文字参照コードに簡単変換。数値文字参照、文字実体参照、特殊文字などの違いも解説。

ECCUBE2.13.3で商品規格の在庫数が無制限から変更できないバグがある

2.13.3固有のバグである商品規格の在庫数の入力エリアがアクティブにならない不具合を解消する解説です。product_class.tplの2行を修正するだけの簡単対応です。

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う
WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

strptimeはWindowsのPHPには未実装。LinuxとMacで挙動が異なる。PHP8.1で非推奨になる。なので日付のチェックはdate_parse_from_formatを使おう。使い方を詳細解説。

ECCUBEの商品一覧ページのSEO対策!rel=”next” rel=”prev”を設定

Googleは関連あるページはその旨明示するよう求めています。ECCUBEの商品一覧ページでその求めに応じるための「rel=”next”」「rel=”prev”」について解説します。

路線・駅検索のために緯度経度からPHPで簡易的に距離を計算する処理解説
路線・駅検索のために緯度経度からPHPで2点間の距離を計算する処理解説

路線・駅検索の仕組みの構築は大変。それを簡易に実装するために緯度経度を元に距離計算をする仕組みを考案。まずは2点間の距離を計算する仕組みを解説し、距離計算にまつわる関連技術も紹介。