note 125999 added to function.implode

From: 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

« previous php.notes (#216270) next »