Maison >développement back-end >tutoriel php >Comment exploser des tableaux de droite à gauche : fractionnement sur le dernier délimiteur en PHP

Comment exploser des tableaux de droite à gauche : fractionnement sur le dernier délimiteur en PHP

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 15:24:30227parcourir

How to Explode Arrays from Right to Left: Splitting on the Last Delimiter in PHP

Explosion de tableaux de droite à gauche : division du dernier délimiteur

En PHP, la fonction éclater() est couramment utilisée pour diviser des chaînes en fonction de délimiteurs spécifiés. Cependant, si vous devez diviser une chaîne uniquement sur la dernière occurrence d'un délimiteur particulier, vous risquez de rencontrer une ambiguïté.

Par exemple, considérez le scénario suivant :

<code class="php">$split_point = ' - ';
$string = 'this is my - string - and more';</code>

Si vous étiez pour utiliser explosive() directement sur cette chaîne, vous obtiendriez le résultat suivant :

<code class="php">$item[0] = 'this is my';
$item[1] = 'string - and more';</code>

Cependant, ce n'est pas le résultat souhaité car nous voulons uniquement diviser sur la deuxième instance du délimiteur. Pour y parvenir, nous pouvons utiliser une approche légèrement différente en utilisant la fonction strrev().

<code class="php">$split_point = ' - ';
$string = 'this is my - string - and more';

$result = array_map('strrev', explode($split_point, strrev($string)));</code>

Voici comment cela fonctionne :

  1. Nous inversons d'abord la chaîne entière en utilisant strrev( ).
  2. Ensuite, nous effectuons l'opération éclater() sur la chaîne inversée, la divisant efficacement de droite à gauche.
  3. Enfin, nous appliquons à nouveau strrev() à chaque élément du résultat. tableau pour restaurer leur ordre d'origine.

Cette approche donne le résultat suivant :

<code class="php">array (
  0 => 'and more',
  1 => 'string',
  2 => 'this is my',
)</code>

En inversant la chaîne puis en la divisant, nous transformons essentiellement la recherche en une recherche de gauche à -opération à droite depuis la fin de la chaîne, nous permettant de capturer la dernière instance du délimiteur.

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