PHP:str_replace的小问题

时间:2011-11-07 11:58:38

标签: 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 $loggers['StackOverflow'] . '<br/>';

以下是输出:

StackOverflow  //echo $logger_name
Notice: Undefined index: StackOverflow in C:\... on line x //looks like not found using $logger_name
Stack Overflow //I can find it directly

更多编辑:

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

2 个答案:

答案 0 :(得分:2)

我假设您的$ header ['fromaddress']具有除“ Stack Overflow ”之外的值,可以说它是“堆栈溢出”

  

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/>';

输出: -

StackOverflow
Stack Overflow
Stack Overflow

答案 1 :(得分:0)

使用此:

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

希望有所帮助