2011-11-07 65 views
0

我需要做一个修改过的字符串array_key_exists,但是,我收到了一个轻微的问题。PHP:与str_replace的小问题

下面举例说明吧:

$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 ...我不知道为什么,并且如果有任何方法将其转换为正确的字符串?

+4

你删除了空格,当然它们不会是空格。 – deejayy

+0

我不确定你的问题最新... ...? 第一行导致$ test变为'Thisisatest',所以显然它不等于'This is a test'...? –

+0

我刚刚编辑了问题 – luqita

回答

2

我假设你的$头[ 'FROMADDRESS']有其他然后 “堆栈溢出” 值,可以说这是 “堆栈溢出”

str_replace函数(” ' '',$标题[' 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/>'; 

OUTPUT: -

StackOverflow 
Stack Overflow 
Stack Overflow 
+0

编辑它,抱歉混淆 – luqita

+0

和标题数组呢? – pinaldesai

+0

更新我的答案,你可以请现在试试吗? – pinaldesai

0

使用此:

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

希望它可以帮助