teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

array_map()とimplode()を使う方法を追加

2021/10/15 20:48

投稿

fj68
fj68

スコア752

answer CHANGED
@@ -1,6 +1,20 @@
1
- `foreach`で繰り返すきに要素のインデックスも取得するようにし、最後の要素でなければ「、」出力すればよいかと思います。
1
+ ### 1. `array_map()`と`implode()`使う方法
2
2
 
3
+ `array_map()`で`$items1`を`<a 〜>〜</a>`という文字列の配列に変換した後、`implode()`で「、」を挿入し、出力する方法です。
4
+ 個人的にはこちらのほうが素直な解法かと思います。
5
+
3
6
  ```php
7
+ echo implode("、", array_map(
8
+ fn($value) => '<a href='.$url.'/meta?key=team&value='.$value.'>'.$value.'</a>',
9
+ $items1
10
+ ))
11
+ ```
12
+
13
+ ### 2. `foreach`を使う方法
14
+
15
+ `foreach`で繰り返すときに要素のインデックスも取得するようにし、最後の要素でなければ「、」を出力する方法もあります。
16
+
17
+ ```php
4
18
  $last_index = count($items1) - 1;
5
19
 
6
20
  foreach($items1 as $index => $value) {
@@ -13,4 +27,7 @@
13
27
 
14
28
  ### 参考
15
29
 
30
+ - [PHP: array_map - Manual](https://www.php.net/manual/ja/function.array-map.php)
31
+ - [PHP: implode - Manual](https://www.php.net/manual/ja/function.implode.php)
32
+ - [PHP: アロー関数 - Manual](https://www.php.net/manual/ja/functions.arrow.php)
16
33
  - [PHPのforeachで繰り返した時のインデックス番号を取得する](https://designsupply-web.com/media/programming/5900/)