Difference between revisions of "John's hacks"
From ProgClub
Line 2: | Line 2: | ||
== Removing last comma == | == Removing last comma == | ||
+ | |||
+ | Sometimes you're processing a list to build a string and you want a comma after all items except the last one. You can do that like this: | ||
+ | |||
+ | // 2020-04-14 jj5 - it's important to handle this case... | ||
+ | // | ||
+ | if ( count( $list ) === 0 ) { return 'list is empty'; } | ||
+ | |||
+ | $result = 'my list: '; | ||
+ | $is_first = true; | ||
+ | |||
+ | foreach ( $list as $item ) { | ||
+ | |||
+ | if ( $is_first ) { | ||
+ | |||
+ | $is_first = false; | ||
+ | |||
+ | } | ||
+ | else { | ||
+ | |||
+ | $result .= ', '; | ||
+ | |||
+ | } | ||
+ | |||
+ | $result .= $item; | ||
+ | |||
+ | } | ||
+ | |||
+ | But that can be simplified like this: | ||
// 2020-04-14 jj5 - it's important to handle this case... | // 2020-04-14 jj5 - it's important to handle this case... |
Revision as of 10:39, 14 April 2020
I decided I might start documenting some hacks I've come across in my travels which I think are neat.
Removing last comma
Sometimes you're processing a list to build a string and you want a comma after all items except the last one. You can do that like this:
// 2020-04-14 jj5 - it's important to handle this case... // if ( count( $list ) === 0 ) { return 'list is empty'; } $result = 'my list: '; $is_first = true; foreach ( $list as $item ) { if ( $is_first ) { $is_first = false; } else { $result .= ', '; } $result .= $item; }
But that can be simplified like this:
// 2020-04-14 jj5 - it's important to handle this case... // if ( count( $list ) === 0 ) { return 'list is empty'; } $result = 'my list: '; foreach ( $list as $item ) { $result .= "$item, "; } // 2020-04-14 jj5 - the neat hack is dropping the last two characters here... // return substr( $result, 0, -2 ) . '.';
Although the whole thing can often be simplified as something like this (you might also need to check for an empty list):
return 'my list: ' . implode( ', ', $list ) . '.';