Maison  >  Article  >  développement back-end  >  Comment effectuer un fractionnement de droite à gauche sur la dernière instance de délimiteur dans une chaîne ?

Comment effectuer un fractionnement de droite à gauche sur la dernière instance de délimiteur dans une chaîne ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-21 15:24:02785parcourir

How to Perform a Right-to-Left Split on the Last Delimiter Instance in a String?

Explosion sur la dernière instance de délimiteur : une approche de droite à gauche

La tâche donnée consiste à diviser une chaîne sur un délimiteur spécifique mais considérez uniquement la dernière occurrence de ce délimiteur. Alors que les fonctions classiques de fractionnement de chaînes comme explosive() fonctionnent de gauche à droite, il existe une manière unique d'obtenir le résultat souhaité.

Considérons l'exemple suivant :

$split_point = ' - ';
$string = 'this is my - string - and more';

L'objectif est de diviser la chaîne sur la dernière instance du délimiteur "-", ce qui donne un tableau comme :

$item[0] = 'this is my - string';
$item[1] = 'and more';

Au lieu d'utiliser éclater() de gauche à droite, nous pouvons inverser la chaîne et inverser le tableau résultant :

$result = array_map('strrev', explode($split_point, strrev($string)));

Cette approche implique :

  1. Inverser la chaîne ($string) pour effectuer la division de droite à gauche.
  2. Appeler éclater() sur le chaîne inversée pour la diviser sur le délimiteur.
  3. Mappage de strrev() au tableau résultant pour inverser chaque élément.

La fonction array_map() est utilisée pour appliquer strrev() à chaque élément du tableau. Le résultat réel serait :

array (
  0 => 'and more',
  1 => 'string',
  2 => 'this is my',
)

Cette technique n'est peut-être pas la solution la plus efficace, mais elle atteint efficacement l'objectif d'exploser sur la dernière instance du délimiteur en inversant la chaîne et en inversant le résultat.

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:
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