3v4l.org

run code in 300+ PHP versions simultaneously
<?php // array of authors, number of authors to take first function niceAuthorsPrint(array $authors, $takeCount){ $totalAuthors = count( $authors ); if($totalAuthors >= 3 && $takeCount >= $totalAuthors) { $takeCount = 2; } if($totalAuthors == 2 && $takeCount >= $totalAuthors) { $takeCount = 1; } $last = array_pop($authors); $tailCount = $totalAuthors - $takeCount; $first = array_slice($authors, 0, $takeCount); $othersLabel = $tailCount == 1 ? $last : $tailCount . ' others'; $string = implode( ", ", $first ); if($tailCount > 0){ $string .= " and " . $othersLabel; } return $string; } // take 3 echo niceAuthorsPrint(array( 'user1', 'user2', 'user3', 'user4', 'user5' ), 3) ."\n"; // take 4 echo niceAuthorsPrint(array( 'user1', 'user2', 'user3', 'user4', 'user5' ), 4) ."\n"; // take 5 echo niceAuthorsPrint(array( 'user1', 'user2', 'user3', 'user4', 'user5' ), 5) ."\n"; // take original count, take first three as default echo niceAuthorsPrint(array( 'user1', 'user2', 'user3', 'user4', 'user5' ), 5) ."\n"; // take original count, take first three as default echo niceAuthorsPrint(array( 'user1', 'user2', 'user3'), 3) ."\n"; // take original count, take first three as default echo niceAuthorsPrint(array( 'user1', 'user2'), 2) ."\n";
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
user1, user2, user3 and 2 others user1, user2, user3, user4 and user5 user1, user2 and 3 others user1, user2 and 3 others user1, user2 and user3 user1 and user2

preferences:
116.97 ms | 408 KiB | 5 Q