Das ist zu diesem Zeitpunkt ziemlich alt, aber ich dachte, es kann nicht schaden, meine Lösung dem Stapel hinzuzufügen. Es ist ein bisschen mehr Code als andere Lösungen, aber damit bin ich einverstanden.
Ich wollte etwas mit ein wenig Flexibilität, deshalb habe ich eine Dienstprogrammmethode erstellt, mit der Sie festlegen können, wie das endgültige Trennzeichen aussehen soll (damit Sie beispielsweise ein kaufmännisches Und verwenden können) und ob ein Oxford-Komma verwendet werden soll oder nicht. Es behandelt auch Listen mit 0, 1 und 2 Elementen ordnungsgemäß (etwas, was einige der Antworten hier nicht tun)
$androidVersions = ['Donut', 'Eclair', 'Froyo', 'Gingerbread', 'Honeycomb', 'Ice Cream Sandwich', 'Jellybean', 'Kit Kat', 'Lollipop', 'Marshmallow'];
echo joinListWithFinalSeparator(array_slice($androidVersions, 0, 1));
echo joinListWithFinalSeparator(array_slice($androidVersions, 0, 2));
echo joinListWithFinalSeparator($androidVersions);
echo joinListWithFinalSeparator($androidVersions, '&', false);
function joinListWithFinalSeparator(array $arr, $lastSeparator = 'and', $oxfordComma = true) {
if (count($arr) > 1) {
return sprintf(
'%s%s %s %s',
implode(', ', array_slice($arr, 0, -1)),
$oxfordComma && count($arr) > 2 ? ',':'',
$lastSeparator ?: '',
array_pop($arr)
);
}
return implode('', $arr);
}