Heim > Backend-Entwicklung > PHP-Tutorial > Wie implodiere ich ein Array mit \', \' und \'and\' vor dem letzten Element?

Wie implodiere ich ein Array mit \', \' und \'and\' vor dem letzten Element?

DDD
Freigeben: 2024-12-01 06:58:12
Original
746 Leute haben es durchsucht

How to Implode an Array with

Ein Array mit „, „ und „und“ vor dem letzten Element implodieren

Das Implodieren eines Arrays in eine Zeichenfolge mithilfe einer durch Kommas getrennten Liste ist eine häufige Aufgabe. Wenn Sie jedoch „und“ vor dem letzten Element hinzufügen müssen, ist dies nicht immer einfach.

Eine reguläre Implode-Funktion

Die implode()-Funktion kann verwendet werden, um die Elemente eines zu verketten Array in eine Zeichenfolge mit einem angegebenen Trennzeichen. Der folgende Code würde beispielsweise eine Reihe von Getränkenamen in eine durch Kommas getrennte Liste implodieren:

$listArrau = ['coke', 'sprite', 'fanta'];
$listString = implode(', ', $listArrau);
Nach dem Login kopieren

Dies würde die folgende Zeichenfolge erzeugen:

coke, sprite, fanta
Nach dem Login kopieren

Hinzufügen von „und“ davor das letzte Element

Um „und“ vor dem letzten Element einzufügen, müssen wir den Implosionsprozess ändern. Hier ist eine lange Lösung:

echo join(' and ', array_filter(array_merge(array(join(', ', array_slice($array, 0, -1))), array_slice($array, -1)), 'strlen'));
Nach dem Login kopieren

Dieser Ausdruck gliedert sich in mehrere Schritte:

  1. Slice des Arrays:Es werden zwei Slices erstellt, eins bis Holen Sie sich alle Elemente außer dem letzten und ein weiteres, um nur das letzte Element zu erhalten.
  2. Führen Sie die zusammen Slices: Die beiden Slices werden zu einem eindimensionalen Array zusammengeführt.
  3. Array filtern: Das zusammengeführte Array wird gefiltert, um leere Elemente zu entfernen (wodurch sichergestellt wird, dass keine leeren Werte vorhanden sind). oder nachgestellte Trennzeichen).
  4. Verbinden Sie das Array: Das gefilterte Array wird mit „ und „ als Trennzeichen verbunden, wodurch Folgendes entsteht die gewünschte Zeichenfolge.

Hier ist eine ausführliche Version mit getrennten Schritten:

$last = array_slice($array, -1);
$first = join(', ', array_slice($array, 0, -1));
$both = array_filter(array_merge(array($first), $last), 'strlen');
echo join(' and ', $both);
Nach dem Login kopieren

Dieser mehrstufige Ansatz ermöglicht es uns, Fälle mit einer beliebigen Anzahl von Elementen zu bearbeiten, einschließlich 0, 1 und 2 Punkte, richtig.

Das obige ist der detaillierte Inhalt vonWie implodiere ich ein Array mit \', \' und \'and\' vor dem letzten Element?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage