Maison >développement back-end >tutoriel php >Comment imploser un tableau avec \', \' et \'and\' 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.
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);
Cela produirait la chaîne suivante :
coke, sprite, fanta
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'));
Cette expression se décompose en plusieurs étapes :
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);
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!