0
votes

Comment inverser deux caractères de chaîne?

Je veux inverser deux caractères de chaîne dans PHP. Par exemple, 50378f à 8f3750 s'il vous plaît aidez-moi s'il vous plaît. XXX

Cette fonction est inversée très bonne mais je veux inverser deux caractères non un personnage .

Ma fonction me donne l'exemple de sortie: 12345 à 543210 mais je le veux comme 103254 .


2 commentaires

Cherchez-vous aux chaînes de Munge ou avez-vous un problème de Endian que vous ne savez pas Comment réparer correctement?


Voulez-vous dire shuffle au lieu de inverse ? Pouvez-vous s'il vous plaît nous montrer quelques exemples d'intrants et de sorties attendus?


4 Réponses :


2
votes

Vous pouvez essayer ceci:

$string = '121314152';
$countDown = strlen($string);
$substrLength = 2;
$reverseString = '';
while ($countDown > 0) {
    $startPosition = $countDown -2;
    if ($countDown == 1) {
        $startPosition = 0;
        $substrLength = 1;
    }
    $reverseString .= substr($string, $startPosition, $substrLength);
    $countDown -= 2;
}

echo $reverseString; //will print 524131211


1 commentaires

Vous avez raison! J'ai édité la réponse pour le faire travailler avec des cordes étranges



0
votes

Vous pouvez essayer xxx


0 commentaires

0
votes

J'ai réécrire la fonction, vous pouvez définir le nombre de longueurs de caractère que vous souhaitez inverser par modifier $ nofcharner.

exemple, si vous définissez $ nofcharner = 3, 12345 résultat sera 1004325. < Pré> xxx


0 commentaires

0
votes

Vous pouvez utiliser la fonction ci-dessous pour la chaîne inverse par deux emplacements.

function reverseByTwoCharacters($string)
{
    $stringReversed = "";
    if (!empty($string)) {
        $stringLength = strlen($string);
        if ($stringLength % 2 == 0) {
            $splittedString = str_split($string, 2);
        } else {
            $splittedString = str_split(substr($string, 1), 2);
            array_unshift($splittedString, $string[0]);
        }
        $reverseString  = array_reverse($splittedString);
        $stringReversed = implode($reverseString);
    }
    return $stringReversed;
}
$string = "1234567890";
echo reverseByTwoCharacters($string);

// Output
9078563412


0 commentaires