入力されたタグを重複がないように格納したいです。
下記のようなコードでいけるかなと思ったのですが
重複して格納されてしまっているので困っています。
どなたか解決方法をご教示ください、よろしくお願いします。
//追記
PHP: array_uniqueについて
array_uniqueは、ループの最中ではなくループの外でまとめて重複の削除をする際につかったほうがよさそう...?
//再追記
↑のような場合もあるとは思いますが、今回は完全に私の初歩的なミスです。
array_pushした後に重複の削除をしないとうまくうごきません。
ご回答いただいた方々この場で感謝申し上げます。
php
1 preg_match_all('/#([a-zA-Z0-90-9ぁ-んァ-ヶー一-龠]+)/u', $request->body, $match); 2 3 $tags = []; 4 5 foreach ($match[1] as $tag) { 6 $record = Tag::firstOrCreate(['tag_name' => $tag]); 7 $tags = array_merge(array_unique($tags)); 8 array_push($tags, $record); 9 }
入力 #aa #bb #cc #aa #bb array:4 0 => aa 1 => bb 2 => cc 3 => bb
回答3件
あなたの回答
tips
プレビュー