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

Susan Sarandon
Libérer: 2024-10-21 15:24:30
original
153 Les gens l'ont consulté

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

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

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

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

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!

source:php
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!