2017-01-26 3 views
0

Also ich weiß nicht, warum ich nicht den mittleren Buchstaben der Zeichenfolge bekommen kann. Dies ist der CodePHP bekommt nicht den mittleren Buchstaben in einer Zeichenfolge

$length = strlen($upper); 
if($length % 2 == 0){ 
    $middle = $length/2; 
    $gitna = substr($upper,$middle-1,$middle); 
}else{ 
    $middle = ($length-1)/2; 
    $gitna = substr($upper,$middle-1,$middle); 
} 

Das Ergebnis des Codes ist

$upper = ACESHARDEWARE 
$length = 13 
$middle = 6 
$gitna = ARDEWA 

Ich weiß nicht, warum $ gitna Ergebnisse ARDEWA. Ich brauche den mittleren Buchstaben der Saite und erwarte $ gitna = "R", aber warum gibt er mir 6 Buchstaben. Irgendeine Hilfe?

+0

lesen Sie die Dokumentation für 'substr'. Der dritte Parameter ist Länge und sollte 1 sein –

Antwort

1

Ihre Teilzeichenlänge sollte 1:

$length = strlen($upper); 
if ($length % 2 == 0) { 
    $middle = $length/2; 
    $gitna = substr($upper, $middle, 1); 
} else { 
    $middle = ($length-1)/2; 
    $gitna = substr($upper, $middle, 1); 
} 

Der dritte Parameter der substr Funktion ist die Länge, so dass, wenn Sie nur ein einzelnes Zeichen wollen dies muss 1 (full documentation) sein.

+1

Wow danke, es funktioniert! und Korrektur in meinem Code der $ middle-1 sollte $ Mitte sein – Ace

Verwandte Themen