2011-02-09 2 views
1

J'ai une chaîne qui pourrait ressembler à l'une des suivantes. En d'autres termes, il peut avoir "le matin" ou "le soir" mais parfois, il peut ne rien avoir.lire et supprimer une sous-chaîne de la manière la plus efficace possible, comme array_pop() mais pour les sous-chaînes

"bla bla in the morning" or 
"bla bla bla in the evening" or 
"bla bla bla" 

Est-ce que php a une fonction à la fois pour isoler et supprimer cette sous-chaîne en même temps? quelque chose comme $last_in_array = array_pop($arr); qui à la fois enregistre le dernier élément dans $last_in_array ET le supprime du tableau en même temps. Quelque chose comme ça pour les cordes pour le scénario que je suis en train d'expliquer. Si non, quelle est la manière la plus efficace de le faire?

Répondre

2
function string_pop(&$haystack, $needle) { 
    if (strpos($haystack, $needle) !== false) { 
     $haystack = str_replace($needle, "", $haystack); 
     return $needle; 
    } 
    return false; 
} 

$string = "bla bla in the morning"; 
$return = string_pop($string, " in the morning"); 

var_dump($string); 
var_dump($return); 

Sortie:

$string: string(7) "bla bla" 
$return: string(15) " in the morning" 
+0

Voir ma modifier, je l'ai enveloppé dans une fonction pour vous. –

+0

Si vous voulez que cela fonctionne différemment s'il vous plaît clarifier. Une spécification complète entrée/sortie serait bien. Ou vous pouvez prendre ce qui est ici et l'écrire :) –

Questions connexes