PHP:str_替换的小问题

PHP:str_替换的小问题,php,Php,我需要用一个修改过的字符串来处理array_key_exists,然而,我之前遇到了一个小问题 以下说明了这一点: $loggers = array('StackOverflow' => 'Stack Overflow'); $logger_name = str_replace(' ', '', $header['fromaddress']); //Remove space echo $logger_name; echo $loggers[$logger_name]; echo $logg

我需要用一个修改过的字符串来处理array_key_exists,然而,我之前遇到了一个小问题

以下说明了这一点:

$loggers = array('StackOverflow' => 'Stack Overflow');
$logger_name = str_replace(' ', '', $header['fromaddress']); //Remove space
echo $logger_name;
echo $loggers[$logger_name];
echo $loggers['StackOverflow'] . '<br/>';
更多编辑:


看起来问题在于第一个输出,即使它说“StackOverflow”,但在使用函数strlen($logger_name)…时,它的长度为35。。。我不知道为什么,如果有任何方法可以将其转换为正确的字符串?

我假设您的$header['fromaddress']的值不是“堆栈溢出”,假设它是“堆栈溢出”

str_replace(“”,,$header['fromaddress'])

将此转换为“stackoverflow”

这不会给您输出,因为PHP中的数组键区分大小写

echo $loggers[$logger_name];  //  $loggers['stackoverflow']
echo $loggers['StackOverflow'];
这是更新后的代码和输出

$loggers = array('StackOverflow' => 'Stack Overflow');
$logger_name = str_replace(' ', '', 'Stack Overflow'); //Remove space
echo $logger_name. '<br/>';
echo $loggers[$logger_name]. '<br/>';
echo $loggers['StackOverflow'] . '<br/>';
使用以下命令:

$text = "This is a test";
$array = explode(' ', $text);
$exists = array_key_exists($key, $array);
echo $exists;

希望这有帮助

您删除了空格,当然它们不会是相同的。我不确定您有什么问题?第一行导致$test更改为'thisistest',显然它不等于'thisatest'?很抱歉给你带来了困惑,我很高兴我为你的一天带来了欢乐:pWhat's
var\u dump($logger\u name)说什么?它应该是
string(13)“StackOverflow”
。它实际上是说string(35)“StackOverflow”:sand头数组呢?更新了我的答案,你现在可以试试吗?不。。。您可以看到我在哪里显示echo$logger\u name为StackOverflow的输出
StackOverflow
Stack Overflow
Stack Overflow
$text = "This is a test";
$array = explode(' ', $text);
$exists = array_key_exists($key, $array);
echo $exists;