0

我正在尝试使用 PHP 在另一个字符串中查找一个字符串(我尝试使用 strpos,但没有得到任何结果)。这是我尝试过的:

$assignedBuildings = " , building 1, building 2, building 3";
$buildingName = "building 1";
$assArray = array_map('trim', explode(',', $assignedBuildings));
print_r($assArray);
echo("Looking for: " . $buildingName . " in " . $assignedBuildings);
$pos = in_array($buildingName, $assArray);

print_r 给我这个:

Array
(
    [0] => 
    [1] => Test Chapter
    [2] => Test 2 Chapter
    [3] => Test 3 Chapter
)

当我回显 $pos 时,我什么也得不到(如“”)。

让我们假设 $buildingName 是“Test 3 Chapter”。我如何在 $assArray 中找到它?

4

5 回答 5

4

你有一个错字。

改变

$pos = strpos($assingedBuildings, $buildingToLookFor);

$pos = strpos($assignedBuildings, $buildingToLookFor);
于 2012-11-27T07:13:40.217 回答
3

如果分配的建筑物列表是逗号分隔的列表,我建议将其分解,然后在结果数组中检查您的值。所以,像这样:

$assignedbuildings = explode(",",",building 1,building 2,building 3");
$buildingToLookFor = "building 1";
$buildingfound = in_array($buildingtolookfor,$assignedbuildings);

注意事项:

  1. 您需要确保列表中不在搜索字符串中的项目周围没有空格
  2. 如果您希望搜索不区分大小写,请在两个字符串周围添加 strtolower。
  3. 使用 strpos 函数是有问题的,因为它不会分隔各个条目。因此,如果您的列表包含“Building 10”,strpos 将为“Building 10”和“Building 1”返回一个值。
于 2012-11-27T07:28:26.360 回答
0

$assingedBuildings 中的错字让您感到困惑。

于 2012-11-27T07:14:32.833 回答
0

您可以使用strstr()进行区分大小写的搜索,对于不区分大小写的搜索,使用strstr() 它返回布尔值。

于 2012-11-27T07:15:25.307 回答
0

您必须更改$assingedBuildings$assignedBuildings:)在此处查看演示。

于 2012-11-27T07:22:45.060 回答