Explosion de chaînes lors de la dernière occurrence du délimiteur
Dans de nombreux cas, il devient nécessaire de diviser une chaîne en fonction d'un délimiteur spécifique. Cependant, il existe des situations où nous devons considérer uniquement la dernière occurrence du délimiteur.
Énoncé du problème
Donné :
$split_point = ' - '; $string = 'this is my - string - and more';
À diviser la chaîne sur la dernière instance de $split_point, nous aimerions obtenir le résultat suivant :
$item[0] = 'this is my - string'; $item[1] = 'and more';
Solution
Pour y parvenir, nous pouvons utiliser un technique astucieuse utilisant la fonction strrev pour inverser la chaîne puis la faire exploser sur le délimiteur inversé :
$result = array_map('strrev', explode($split_point, strrev($string)));
En inversant la chaîne, la dernière instance du délimiteur devient la première occurrence. Après avoir divisé la chaîne inversée, nous inversons le résultat pour restaurer l'ordre d'origine.
Sortie
Cette approche produit la sortie souhaitée :
array ( 0 => 'and more', 1 => 'string', 2 => 'this is my', )
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!