Chop () прерывает больше, чем просят

У меня есть несколько случайных строк, и я пытаюсь вытащить "SpottedBlanket" из строки. Некоторые из них работают нормально:

DarkBaySpottedBlanket --
DarkBay

BaySpottedBlanket --
Bay

но другие вырезают больше, чем следовало бы.

RedRoanSpottedBlanket --
RedR

BlackSpottedBlanket --
Blac

DunSpottedBlanket --
Du

это код, который я использую, но я думал, что это будет само за себя:

 $AppyShortcut = chop($AppyColor,"SpottedBlanket");

$AppyColor очевидно, будет случайным образом сгенерированная строка. Любая подсказка, почему это происходит?

0

Решение

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(),

0

Другие решения

Других решений пока нет …