0
votes

Changer de cas dans la chaîne de manière différente des sous-chaînes avec des nombres aussi

J'ai besoin de changement dans le cas de PHP d'une chaîne de différentes manières qui dépendIdig par la sous-chaîne.

Si la sous-chaîne séparée par l'espace et seules des lettres mettent la première lettre majuscule et le repos minuscule.
S'il y a des lettres et des chiffres, ils devraient toujours remédier majuscule:

ce PHP 5. xxx

par exemple:

Nouvelle Apple iPhone X 64GB CVX-DK46

devrait devenir:

Nouvelle Apple iPhone X 64GB CVXDK46


1 commentaires

Je viens de remarquer que le - dans le dernier mot est manquant, est-ce une faute de frappe ou doit-elle être supprimée? Si oui, quel est le critère pour supprimer - ?


4 Réponses :


2
votes

Ceci va boucler à travers chaque mot et voir s'il y a un chiffre dans le mot, si non, alors effectuez la stradbower et Ucwords. xxx

https://3v4l.org/qccg9


0 commentaires

1
votes

Voici une autre méthode. La seule différence est l'utilisation de la fonction array_walk () code> au lieu de la foreach () code> boucle en réponse andreas. (Qui est aussi une bonne réponse.)

$str = 'NEW APPLE IPHONE X 64GB CVX-Dk46';

$data = explode(' ', $str); //This will take the sting and break the string up
//into an array using the space bewtween the words to break apart the string.

array_walk($data, function(&$item){  //Walk each item in the array through a function to decide what gets UC letter.

  if(!preg_match('/\d/', $item)){ //Test for any numbers in a word.

    //If there are no numbers convert each character to lower case then upper case the first letter.
    $item = ucwords(strtolower($item));

  }

});

$newString = implode(' ', $data);  //Take the new array and convert it back to a string.

echo $newString; //This will output:  "New Apple Iphone X 64GB CVX-Dk46"


0 commentaires

0
votes

Vous ne pouvez pas y parvenir à une seule ligne.Veuillez voir le code ci-dessous si cela peut vous être utile.

New Apple Iphone X 64GB CVX-Dk46


0 commentaires

0
votes

Tout d'abord, vous devez trouver le numéro dans votre chaîne. - Si vous avez le numéro, vous devez séparer votre chaîne en tableau Le premier tableau ne contient que la chaîne, le second tableau est contenant un numéro (ou un nombre et une chaîne). - Si vous n'avez pas le numéro que vous n'avez pas besoin d'utiliser la fonction PHP Strtolower pour abaisser votre chaîne et utilisez la fonction PHP ucwords pour convertir le premier caractère d'une chaîne en majuscule Vous pouvez essayer le code ci-dessous: Link: https://3v4l.org/jw6wf

function upperCaseString($string)
{
$pattern = '/(?=\d)/';
$array = preg_split($pattern, $string, 2);
$text='';
	if(count($array)>1)
	{
		
		$text=ucwords(strtolower($array[0])).' '.strtoupper($array[1]);
	}
	else
	{
		$text=ucwords(strtolower($array[0]));
	}
	return $text;
}
$str = "NEW APPLE IPHONE X 64GB CVX-Dk46";
echo upperCaseString($str);


0 commentaires