Maison  >  Article  >  développement back-end  >  Comment exploser des chaînes avec plusieurs délimiteurs en PHP ?

Comment exploser des chaînes avec plusieurs délimiteurs en PHP ?

DDD
DDDoriginal
2024-11-01 16:52:02939parcourir

How to Explode Strings with Multiple Delimiters in PHP?

Explosion de chaînes avec plusieurs délimiteurs en PHP

Lorsque vous traitez des chaînes complexes, vous pouvez rencontrer le besoin de les exploser en utilisant plusieurs délimiteurs. Voici une exploration détaillée de ce défi, présentant une solution potentielle et une approche alternative.

Énoncé du problème

Considérez les tableaux de chaînes suivants :

<code class="php">$example = 'Appel @ Ratte';
$example2 = 'apple vs ratte';</code>

L'objectif est d'obtenir des tableaux divisés en '@' ou 'vs'.

Solution récursive personnalisée

Une approche consiste à implémenter une fonction récursive appelé multiExplode. Cette fonction prend un tableau de délimiteurs et une chaîne en entrée. Cela commence par éclater la chaîne en utilisant le premier délimiteur du tableau. S'il reste encore des délimiteurs et que le tableau résultant contient plus d'un élément, la fonction s'appelle récursivement avec les délimiteurs restants et la chaîne modifiée.

<code class="php">private function multiExplode($delimiters, $string) {
    $ary = explode($delimiters[0], $string);
    array_shift($delimiters);
    if ($delimiters != NULL) {
        if (count($ary) < 2) {
            $ary = $this->multiExplode($delimiters, $string);
        }
    }
    return $ary;
}</code>

Solution alternative utilisant des expressions régulières

Une autre approche consiste à utiliser les fonctions d'expression régulière de PHP. La fonction preg_split() peut être utilisée pour diviser une chaîne à l'aide d'un modèle d'expression régulière. En créant un motif qui correspond à l'un des délimiteurs souhaités ("@" ou "vs"), vous pouvez diviser la chaîne en parties souhaitées.

<code class="php">$output = preg_split('/ (@|vs) /', $input);</code>

Les deux méthodes peuvent être utilisées pour exploser des chaînes avec plusieurs délimiteurs en PHP. Le choix de la méthode à utiliser peut dépendre des exigences spécifiques et des préférences de l'application.

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