比较两个不起作用的字符串(?)

时间:2017-03-12 11:59:53

标签: php arrays string compare

我知道这一定是一个非常容易解决的问题但作为一个半新手,让我疯狂。

我有一个包含多行的txt文件。每行中的元素用|分隔。每一行之后都有一个回车。

我只是试图遍历这些行,如果任何行的第一个元素与某个字符串匹配,那么必须使用该特定行完成一些事情。

$mystring = 'some string with spaces (or not)';
$myarray = explode("\n", file_get_contents('myfile.txt'));
for($x = 0; $x < count($myarray); $x++) {
    $myline = explode("|", $myarray[$x]);
    if ($myline[0] == $mystring) {
        //do things
    }
}

不幸的是,我无法让它工作:(任何建议?

修改以添加更多信息

我们假设我的参考字符串是

$mystring = 'Spider-man: Homecoming';

让我们假设txt文件中的一行是:

  

蜘蛛侠:回归|漫威和索尼电影,2017年7月发布

所以,正如代码中所述,我将

$myline[0] = 'Spider-man: Homecoming';

由于某种原因,代码不考虑$ myline [0]和$ mystring equals。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。

$mystring = 'some string with spaces (or not)';
$myarray = explode("\n", file_get_contents('myfile.txt'));
for($x = 0; $x < count($myarray); $x++) {
    $myline = explode("|", $myarray[$x]);
    if (preg_replace("/[^a-zA-Z]/", "", $myline[0]) == preg_replace("/[^a-zA-Z]/", "", $mystring)) {
        //do things
    }
}

出于某种原因(我猜爆炸元素有一些附加特征,如空格或其他),比较不起作用。现在使用preg_replace,它可以工作!