У меня есть несколько случайных строк, и я пытаюсь вытащить "SpottedBlanket"
из строки. Некоторые из них работают нормально:
DarkBaySpottedBlanket --
DarkBay
BaySpottedBlanket --
Bay
но другие вырезают больше, чем следовало бы.
RedRoanSpottedBlanket --
RedR
BlackSpottedBlanket --
Blac
DunSpottedBlanket --
Du
это код, который я использую, но я думал, что это будет само за себя:
$AppyShortcut = chop($AppyColor,"SpottedBlanket");
$AppyColor
очевидно, будет случайным образом сгенерированная строка. Любая подсказка, почему это происходит?
chop
функция принимает строку во втором аргументе — который в этом случае "SpottedBlanket"
и удаляет все смежные символы, которые он находит с правой стороны.
Так что для случая "RedRoanSpottedBlanket"
ты вернешься "RedR"
так как "o"
, "a"
, а также "n"
буквы, которые можно найти в строке "SpottedBlanket"
,
chop()
обычно используется для удаления конечных пробелов — способ очистки ввода пользователя перед выполнением каких-либо действий с ним.
Дайте свой массив:
$strings = ["DarkBaySpottedBlanket", "RedRoanSpottedBlanket", "BlackSpottedBlanket", "DunSpottedBlanket"];
То, что вы можете искать, выглядит примерно так:
foreach ($strings as $string) {
print substr($string, 0, strrpos($string, "SpottedBlanket")) . "\n";
}
Это находит позицию строки с конца, используя strrpos()
, затем возвращает начало строки до этой позиции, используя substr()
,
Других решений пока нет …