574 Stimmen

Wie erhält man das letzte Zeichen eines Strings in PHP?

Ich muss das letzte Zeichen einer Zeichenkette abrufen. Sagen wir, ich habe "testers" als Eingabe-String und ich möchte, dass das Ergebnis "s" ist. wie kann ich das in PHP tun?

1213voto

Rich Adams Punkte 25072
substr("testers", -1); // returns "s"

Oder, für Multibyte-Strings :

mb_substr("multibyte string…", -1); // returns "…"

97voto

knittl Punkte 214432
substr($string, -1)

79voto

Gordon Punkte 304254

Oder durch direkter String-Zugriff :

$string[strlen($string)-1];

Beachten Sie, dass dies nicht für Multibyte-Strings funktioniert. Wenn Sie mit Multibyte-Strings arbeiten müssen, sollten Sie die Funktion mb_* String-Familie von Funktionen.

Seit PHP 7.1.0 werden auch negative numerische Indizes unterstützt, z.B. $string[-1];

56voto

RyanNerd Punkte 2851

Ab PHP 7.1 können Sie dies tun ( Akzeptierte rfc für negative String-Offsets ):

<?php
$silly = 'Mary had a little lamb';
echo $silly[-20];
echo $silly{-6};
echo $silly[-3];
echo $silly[-15];
echo $silly[-13];
echo $silly[-1];
echo $silly[-4];
echo $silly{-10};
echo $silly[-4];
echo $silly[-8];
echo $silly{3}; // <-- this will be deprecated in PHP 7.4
die();

Ich lasse Sie das Ergebnis erraten.

Außerdem habe ich dies zu Xenonit Leistungscode mit diesen Ergebnissen:

substr() dauerte 7,0334868431091Sekunden

Array-Zugriff dauerte 2,3111131191254 Sekunden

Der direkte String-Zugriff (negative String-Offsets) dauerte 1,7971360683441 Sekunden.

37voto

nektobit Punkte 773

Seit PHP 7.1.0 werden auch negative String-Offsets unterstützt. Wenn Sie also mit der Zeit gehen, können Sie auf das letzte Zeichen in der Zeichenkette wie folgt zugreifen:

$str[-1]

DEMO

Auf die Bitte eines @mickmackusa ergänze ich meine Antwort mit möglichen Anwendungsmöglichkeiten:

<?php

$str='abcdef';
var_dump($str[-2]); // => string(1) "e"

$str[-3]='.';
var_dump($str);     // => string(6) "abc.ef"

var_dump(isset($str[-4]));  // => bool(true)

var_dump(isset($str[-10])); // => bool(false)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X