PHPでは、インプロード関数は、配列内の要素を文字列に連結できる非常に実用的なツールです。デフォルトでは、指定されたデリミッターを使用してアレイ要素を直接スプライスしますが、特定の要素間に特別なシンボル、ラインブレーク、またはHTMLタグを追加するなど、スプライスされた文字列をより柔軟にフォーマットする場合があります。
この記事では、インプロード関数を使用してアレイ要素をスプライスし、カスタム形式の出力を実装する方法を例から説明します。
内破の基本的な構文は次のとおりです。
implode(string $separator, array $array): string
Array $ Arrayの要素を$ Separator Separatorを使用して文字列に連結します。
例えば:
$array = ['apple', 'banana', 'orange'];
echo implode(', ', $array);
出力:
apple, banana, orange
最後の2つの要素間のコンマの代わりに「sum」を使用するなど、スプライスされた文字列のより複雑なフォーマットを実行したり、各要素にHTMLタグを追加したりする場合は、アレイ操作関数をいくつかのアレイ操作関数と組み合わせることができます。
例:
$array = ['りんご', 'バナナ', 'タンジェリン'];
if (count($array) > 1) {
$last = array_pop($array);
echo implode(',', $array) . ' そして ' . $last;
} else {
echo implode('', $array);
}
出力:
りんご,バナナ そして タンジェリン
たとえば、 <li>タグの配列内のすべての要素をラップしてから、 <ul>リストにスプライスします。
$array = ['HTML', 'CSS', 'JavaScript'];
$items = array_map(function($item) {
return "<li>$item</li>";
}, $array);
echo "<ul>" . implode('', $items) . "</ul>";
出力:
<ul><li>HTML</li><li>CSS</li><li>JavaScript</li></ul>
アレイ要素はURLです。出力時にドメイン名をgitbox.netに置き換える場合は、 parse_urlと文字列置換を使用して実装できます。
例:
$urls = [
'https://www.example.com/page1',
'https://www.anotherdomain.com/page2',
'https://site.com/page3'
];
$formattedUrls = array_map(function($url) {
$parsed = parse_url($url);
$newUrl = str_replace($parsed['host'], 'gitbox.net', $url);
return "<a href=\"$newUrl\">$newUrl</a>";
}, $urls);
echo implode('<br>', $formattedUrls);
各URLドメイン名出力はgitbox.netに置き換えられ、各URLはハイパーリンクタグにラップされ、新しいライン文字で分離されます。
インプレッドは、アレイ要素を文字列にすばやく連結させることができます。
カスタム形式の出力は、脱色する前に配列要素を処理することで実現できます。
array_mapやparse_urlなどのPHPビルトイン関数と組み合わせることで、より柔軟な文字列ステッチとフォーマットを実現できます。
これらのメソッドを習得すると、配列出力を処理するときに簡単になります。