note 125999 added to function.implode
| From: | biziclop at main dot php dot net | Date: | Fri, 09 Apr 2021 22:30:24 +0000 |
| Subject: | note 125999 added to function.implode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-216270@lists.php.net to get a copy of this message | ||
Sometimes it's necessary to add a string not just between the items, but before or after too,
and proper handling of zero items is also needed.
In this case, simply prepending/appending the separator next to implode() is not enough, so I made
this little helper function.
<?php
function wrap_implode( $array, $before = '', $after = '', $separator =
'' ){
if( ! $array ) return '';
return $before . implode("{$after}{$separator}{$before}", $array ) . $after;
}
echo wrap_implode(['path','to','file.php'], '/');
// "/path/to/file.php"
$pattern = '#'. wrap_implode([4,2,2], '\d{', '}', '[-.]')
.'#';
echo $pattern, "\n"; // #\d{4}[-.]\d{2}[-.]\d{2}#
echo preg_replace( $pattern, '[REDACTED]', 'The UFO appeared between 2012-12-24 and
2013.01.06 every night.');
// 'The UFO appeared between [REDACTED] and [REDACTED] every night.
echo wrap_implode(['line','by','line'], '<b>',
'</b>', '<br> ');
// <b>line</b><br> <b>by</b><br> <b>line</b>
echo wrap_implode( ['<a href="">Menu Item 1</a>', '<a
href="">Menu Item 2</a>',],
"<li>", "</li>\n",
"<li> | </li>\n",
);
/*
<li><a href="">Link1</a></li>
<li> | </li>
<li><a href="">Link2</a></li>
*/
?>
----
Server IP: 45.112.84.4
Probable Submitter: 45.112.85.242 (proxied: 62.165.224.189)
----
Manual Page -- https://php.net/manual/en/function.implode.php
Edit -- https://main.php.net/note/edit/125999
Del: integrated -- https://main.php.net/note/delete/125999/integrated
Del: useless -- https://main.php.net/note/delete/125999/useless
Del: bad code -- https://main.php.net/note/delete/125999/bad+code
Del: spam -- https://main.php.net/note/delete/125999/spam
Del: non-english -- https://main.php.net/note/delete/125999/non-english
Del: in docs -- https://main.php.net/note/delete/125999/in+docs
Del: other reasons-- https://main.php.net/note/delete/125999
Reject -- https://main.php.net/note/reject/125999
Search -- https://main.php.net/manage/user-notes.php