Chop() 砍的比要求的多

Chop() is chopping more than what is asked

我有多个随机字符串,我正在尝试从字符串中提取 "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() 通常用于删除尾随白色 space - 一种在执行某些操作之前清理用户输入的方法。

给出你的数组:

$strings = ["DarkBaySpottedBlanket", "RedRoanSpottedBlanket", "BlackSpottedBlanket", "DunSpottedBlanket"];

您可能正在寻找的是这样的东西:

foreach ($strings as $string) {
  print substr($string, 0, strrpos($string, "SpottedBlanket")) . "\n";
}

这会使用 strrpos() 从末尾找到字符串的位置,然后 returns 使用 substr().

从字符串的开头直到该位置