2011-11-07 62 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; 

希望它可以幫助