質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

515閲覧

"item0001,item0002"を"item0001","item0002"に変換させたいです。

oslemr

総合スコア1

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/01/09 05:35

編集2023/01/10 12:18

質問内容

"item0001,item0002"を"item0001","item0002"に変換させたいです。

前提

ブログ等のカテゴリを登録し
「ファッション」なら「item0001」,「グッズ」なら「item0002」といった形で登録します。
両方のカテゴリを選択し、var_dumpした場合、
「"item0001,item0002"」と出力されます。

こちらを「"item0001","item0002"」と変換させたいです。

試したこと

<?php $blog_ctg_arr = explode(',', $blog_data->category); ?>で

$blog_ctg_arrをvar_dumpした場合、

PHP

1array(2) { [0]=> string(8) "item0001" [1]=> string(8) "item0002" }

foreach($catetgory as $val) {
}
で$blog_ctg_arrをvar_dumpした場合、
「item0002」しか出力されません。

foreach 文で処理しようとすること自体間違えているのでしょうか。

ご教授いただけると幸いです。

PHP

1<?php $blog_ctg = ""; ?> 2<?php $blog_ctg_array = array(); ?> 3 4<?php if (strpos($blog_data->category, ",") === false): ?> 5 <?php $blog_ctg = $blog_data->category; ?> 6<?php else: ?> 7 <?php foreach($blog_ctg_master as $category_key => $category_val): ?> 8 <?php if(strpos($blog_data->category, $category_key) !== false): ?> 9 <?php $blog_ctg = $category_key; ?> 10 <?php //var_dump($active_data->category); ?> 11 <?php endif; ?> 12 <?php endforeach; ?> 13 <?php //var_dump($active_ctg); ?> 14 <?php endif; ?> 15 16 17<li data-tag='["item0001","item0002"]'> //<=「"item0001","item0002"」の部分を「<?php echo $blog_ctg; ?>」として使用したいです。 18 <a href="/activity/detail/" class="js-scr-trigger" data-anime="fadeInUp"> 19 <div class="thumbnail"> 20 <img src="https://placeimg.com/620/620/people" alt="" loading="lazy" width="620" height="620" class="bg"> 21 <img src="https://placeimg.com/620/620/people" alt="" loading="lazy" width="620" height="620" class="img"> 22 </div> 23    <div class="card-body"> 24 <div class="ttl">1テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。</div> 25 <div class="cmn-tag-wrap"> 26 <span class="cmn-tag">ファッション</span> 27 <span class="cmn-tag">ファッショングッズ</span> 28 </div> 29 </div> 30 </a> 31</li>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuma.inaura

2023/01/09 07:29

$active_ctg_arr などの変数が何なのかは読む人には分からないので、再現できるコードを載せてみませんか?
oslemr

2023/01/09 07:40

コメントありがとうございます。 $active_ctg_arrは空の変数でexplodeしたブログのカテゴリ($blog_data->category)を代入致しました。
yuma.inaura

2023/01/09 07:43

WordPressの質問ってことなんでしょうか 再現できるコードを載せてみませんか?
oslemr

2023/01/09 07:50

WordPressではございません。 サンプルコードを入れました。
yuma.inaura

2023/01/09 08:21

コードの中に $active_ctg_arr 変数が見当たらないですね
oslemr

2023/01/09 08:28

失礼しました。こちらでいかがでしょうか。
guest

回答1

0

ベストアンサー

こんな感じですか?

PHP

1<?PHP 2$a=["item0001","item0002"]; 3print_r($a); 4$b=array_map(function($x){ 5return "\"$x\""; 6},$a); 7print_r($b); 8print implode(",",$b);

調整版

PHP

1$a="item0001,item0002"; 2print_r($a); 3$b=array_map(function($x){ 4return "\"$x\""; 5},explode(",",$a)); 6print_r($b); 7print implode(",",$b);

投稿2023/01/09 09:13

編集2023/01/10 03:00
yambejp

総合スコア114585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oslemr

2023/01/10 02:31

ご回答いただきありがとうございます。 ```PHP $a=[$blog_data->category]; // ["item0001,item0002"]が格納されている print_r($a); $b=array_map(function($x){ return "\"$x\""; },$a); print_r($b); print implode(",",$b); // Array ( [0] => "item0001,item0002" )と出力される ``` 上記のように試してみましたが、 やはり"item0001,item0002" と出力されてしまいまして、、 "item0001","item0002"と表示したいです。。
yambejp

2023/01/10 02:33

$a=[$blog_data->category];  こうでは? $a=$blog_data->category; 
oslemr

2023/01/10 02:53

失礼いたしました。 $a=$blog_data->category; で試しました。 下記の処理で$bがNULLになってしまいまして、$bの処理に誤りがございますでしょうか。 $b=array_map(function($x){ return "\"$x\""; },$a);
yambejp

2023/01/10 02:55

var_export($blog_data->category); でデータの内容を明記ください
oslemr

2023/01/10 02:57

こちらでございます。 'item0001,item0002'
yambejp

2023/01/10 03:01

失礼しました、命題に$blog_ctg_arrがあったので配列で管理しているのかと思ったのですが$blog_data->categoryは文字列なんですね。 調整版を追記したのでご確認ください
oslemr

2023/01/10 03:18

ご確認いただき、ありがとうございます! 無事に処理ができました。 情報が見づらく、大変申し訳ございませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問