PHPで配列の値をダブルクオーテーションで囲んでimplodeでカンマ区切りにする方法
PHPで配列をクォーテーションで囲ってカンマ区切りのテキストにする方法の解説
PHPで配列をクォーテーションで囲ってカンマ区切りのテキストにする方法の解説・「preg_replace()」「implode()」を使う
PHPで、配列の値をダブルクォーテーション(シングルクォーテーション)で囲んで、implode()関数でカンマ区切りにしてテキスト化する方法を解説します。
1 2 3 4 5 6 |
$array = [ 'あああ', 'いいい', 'ううう' ]; $text = implode ( ",", preg_replace ( '/^(.*?)$/', '"$1"', $array ) ); echo $text; // 実行結果は下記のようになります。 // "あああ","いいい","ううう" |
まず最初に、「preg_replace()」関数を使って、配列の値を「”(ダブルクォーテーション)」で囲みます。
シングルクォーテーションがいい場合は、「'"$1"'
」の部分のダブルクォーテーションとシングルクォーテーションを入れ替えて「"'$1'"
」とすれば OKです。
続いて、「implode()」関数を使って「,(カンマ)」で区切ってテキスト化する、という処理です。
最初の「preg_replace()」関数を使う処理が分かれば、難しい処理ではないでしょう。
配列の中にダブルクォーテーションが含まれる場合はエスケープ処理
前項の処理において、配列の中の値にダブルクオーテーションが含まれる場合は、テキスト化した際のクォーテーションの囲みが正しく認識されない場合が考えられます。
配列の中にダブルクォーテーションが含まれる可能性がある場合は、下記の様にエスケープする処理を追加します。
1 2 3 |
$array = [ 'あ"ああ', 'いいい', 'ううう']; $array = str_replace('"', '\"', $array); $text = implode(",", preg_replace('/^(.*?)$/', '"$1"', $array)); |
配列をダブルクォーテーションで囲んでカンマで区切る他の方法
今回の解説の「配列をクォーテーションで囲って、「implode()」関数でカンマ区切りのテキストにする」という方法をググると、下記のような方法が出てきました。
1 2 |
$array = [ 'あああ', 'いいい', 'ううう']; $text = '"' . implode('","', $array) . '"'; |
「implode()」関数で、配列の間に「”,”」を入れてテキスト化し、不足している一番前と一番うしろに「”」を追加する、という処理です。
この方法でもできます。
ただ、あまり美しくないなぁ、と思うことと、配列が空だった場合は「””」のクォーテーションの囲みだけが残ることとなります。
配列が空だった場合にクォーテーションの囲みだけが残ることが問題につながる場合は、if文による分岐処理なども必要になります。
ですが、最初に紹介した方法であれば、配列がからの場合は「””」のクォーテーションの囲みも出力されません。
まぁ、そもそも「$array」の存在チェックから必要であれば、処理の長さはあまり変わらなくなりますが。
この記事で紹介した処理を必要とした経緯
今回この記事で紹介した処理を必要としたい経緯は、データベースに保存してある値を PHPで処理をして、JavaScriptの配列に入れたい、というのが出発点でした。
1 2 3 4 5 6 7 |
<script> $(function(){ var textList = ["01","03","07"]; textList.forEach(function(value){ $("#sample" + value).hide(); }); </script> |
上記の 3行目の配列の箇所に「”01″,”03″,”07″」を編集したい!というのが目的でした。
ググっても出てくる処理があんまり美しくないなぁ、と思った次第です。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方
PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方を解説。要素を取得する方法、そこから属性を取得する方法を解説。また、マニュアルにはない注意点なども解説。
-
-
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分。コマンドの解説や引数の意味なども解説しているので役に立つはず。
-
-
指定した数で文字列を丸める(n文字目で…にする)関数substr、mb_substr、mb_strimwidthの違い
文字列を指定された数で抜き出すPHPの関数、substr、mb_substr、mb_strimwidthについての解説。似た関数だが引数の指定方法が違ったり、文字数がバイト数か文字数かも違ったり、注意が必要だ。
-
-
ECCUBEでアップロードできない。upload_max_filesizeを設定する場所
テンプレートをアップロードする際に発生するエラー「テンプレートファイルがアップロードされていません」の対処方法。これはファイル容量の制限に引っかかっています。
-
-
SEO対策用タイトル、ディスクリプションの文字数カウントツール
SEO対策に使える文字数カウントツールで文字数の条件の説明も行っています。
-
-
パーミッション(属性)一括変更ツール・WordPress最適化済
WordPressのパーミッション(属性)を一括変更するツールを作成!ファイル、フォルダのパーミッションが一覧表示でき、ファイルを選んでパーミッションの変更が行えます。
-
-
Basic認証の.htaccess、.htpasswd生成ツールと解説
Basic認証を設定する際に必要となる.htaccess、.htpasswdファイルを生成するツール。ID、PASS、.htpasswdへのパスを入力することで編集する情報を生成します。
-
-
サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない
PHPでショートタグを使うのは危険。サーバ移転やバージョンアップで動かなくなる!ソースが丸見え、設定情報流出のリスクが!php.iniのshort_open_tagの設定を再確認。
-
-
AdminerはphpMyAdmin代替のデータベース管理ツール
AdminerはphpMyAdminとほぼ同機能のデータベース管理ツール。PHP 1ファイルのため設置が非常に簡単で軽快に動作し、phpMyAdminの置き換えで使うのも問題なし。
-
-
PHPパーミッション変更のchmod関数・モードを変数で指定する方法
パーミッション変更関数であるchmod関数の第二引数、ファイルモードの指定に変数を使う場合は8進数に変換するoctdec関数を使って変換します。