Maison > développement back-end > tutoriel php > Comment imploser un tableau avec \', \' et \'and\' avant le dernier élément ?

Comment imploser un tableau avec \', \' et \'and\' avant le dernier élément ?

DDD
Libérer: 2024-12-01 06:58:12
original
746 Les gens l'ont consulté

How to Implode an Array with

Implorer un tableau avec "," et "et" Avant le dernier élément

Implorer un tableau dans une chaîne à l'aide d'une liste séparée par des virgules est une tâche courante. Cependant, lorsque vous devez ajouter « et » avant le dernier élément, ce n'est pas toujours simple.

Une fonction implose régulière

La fonction implose() peut être utilisée pour concaténer les éléments d'un tableau en chaîne, avec un séparateur spécifié. Par exemple, le code suivant imploserait un tableau de noms de boissons dans une liste séparée par des virgules :

$listArrau = ['coke', 'sprite', 'fanta'];
$listString = implode(', ', $listArrau);
Copier après la connexion

Cela produirait la chaîne suivante :

coke, sprite, fanta
Copier après la connexion

Ajout de "et" avant le dernier élément

Pour insérer "et" avant le dernier élément, nous devons modifier le processus d'implosion. Voici une solution longue durée :

echo join(' and ', array_filter(array_merge(array(join(', ', array_slice($array, 0, -1))), array_slice($array, -1)), 'strlen'));
Copier après la connexion

Cette expression se décompose en plusieurs étapes :

  1. Découpez le tableau : Deux tranches sont réalisées, une pour obtenir tous les éléments sauf le dernier, et un autre pour obtenir uniquement le dernier élément.
  2. Fusionner les slices : Les deux tranches sont fusionnées en un tableau unidimensionnel.
  3. Filtrer le tableau : Le tableau fusionné est filtré pour supprimer les éléments vides (en garantissant qu'il n'y a pas de valeurs vides ou séparateurs de fin).
  4. Rejoindre le tableau : Le tableau filtré est joint en utilisant " et " comme séparateur, produisant la chaîne souhaitée.

Voici une version détaillée avec les étapes séparées :

$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);
Copier après la connexion

Cette approche en plusieurs étapes nous permet de traiter des cas avec n'importe quel nombre d'éléments, y compris 0, 1 et 2 éléments, correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal