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

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

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

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Q&A

2回答

817閲覧

カンマ区切り複数の値を表示

mint5963

総合スコア0

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

0グッド

0クリップ

投稿2021/10/15 17:01

Wordpressの記事「バックスクリーン3連発」にカスタムフィールドを追加しました。
フィールド名:team
値:阪神タイガース,読売ジャイアンツ(カンマ区切り)

「バックスクリーン3連発」の記事にカスタムフィールドの値をリンク付き表示する際にforeachを使っているのですが

阪神タイガース読売巨人となり区切りが無いので見ずらいので

<a href="http://localhost/wp/meta?key=team&value=阪神タイガース">阪神タイガース</a><a href="http://localhost/wp/meta?key=team&value=読売ジャイアンツ">読売ジャイアンツ</a>

aタグの間に全角カンマ(、)入れたいのですが方法が分かりません。

<?php if( post_custom('team)) { $items = post_custom('team'); $items = explode("," , post_custom('team')); foreach($items1 as $value) { echo '<a href='.$url.'/meta?key=team&value='.$value.'>'.$value.'</a>'; } } ?>

どうかアドバイスを頂けないでしょうかよろしくお願いします。

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

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

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

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

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

guest

回答2

0

php

1$items = explode("," , post_custom('team')); 2foreach($items1 as $value) { 3 echo '<a href='.$url.'/meta?key=team&value='.$value.'>'.$value.'</a>'; 4}

php

1$items = explode("," , post_custom('team')); 2$links = []; 3foreach ($items as $value) { 4 $links[] = '<a href=' . $url . '/meta?key=team&value=' . $value . '>' . $value . '</a>'; 5} 6echo implode('、', $links);

投稿2021/10/15 20:51

takasima20

総合スコア7464

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

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

0

1. array_map()implode()を使う方法

array_map()$items1<a 〜>〜</a>という文字列の配列に変換した後、implode()で「、」を挿入し、出力する方法です。
個人的にはこちらのほうが素直な解法かと思います。

php

1echo implode("、", array_map( 2 fn($value) => '<a href='.$url.'/meta?key=team&value='.$value.'>'.$value.'</a>', 3 $items1 4))

2. foreachを使う方法

foreachで繰り返すときに要素のインデックスも取得するようにし、最後の要素でなければ「、」を出力する方法もあります。

php

1$last_index = count($items1) - 1; 2 3foreach($items1 as $index => $value) { 4 echo '<a href='.$url.'/meta?key=team&value='.$value.'>'.$value.'</a>'; 5 if ($index != $last_index) { // 最後の要素でない場合 6 echo '、' 7 } 8}

参考

投稿2021/10/15 19:55

編集2021/10/15 20:48
fj68

総合スコア752

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問