2016-11-08 29 views
-4

我嘗試訪問數組元素,但由於某種原因,這給我一些麻煩。我似乎有一個不可訪問的數組元素

所以我得到這個數組裏面$lead

Array 
(
    ["City"] => Other 
    [Company Name] => 
    [Company Email] => 
    [Contact Form URL] => 
    [Comments] => 
) 

我嘗試訪問它是這樣的:

var_dump($lead['"City"']); 

但出於某種原因,我得到一個未定義的索引錯誤:

Notice: Undefined index: "City"

我不知道這是爲什麼?

編輯:

這是輸出,當我使用highlight_string(print_r($lead, TRUE));

Array 
(
    ["City"] => Other 
    [Company Name] => 
    [Company Email] => 
    [Contact Form URL] => 
    [Comments] => 
) 

也與此代碼:

foreach($lead as $k => $v){ 
    var_dump($k); 
    die(); 
} 

我得到:

string(9) ""City"" 
+1

這是'$ leads'或'在$ lead'的轉儲foreach循環? – Rizier123

+1

我投票結束這個問題作爲題外話,因爲問題得到了充分的回答,然後由作者刪除,並最終重新張貼。 –

+0

這不是'var_dump()'輸出... – AbraCadaver

回答

1

所以感謝評論,似乎我在密鑰的開頭獲得了UTF-8 BOM character (EF BB BF),這就是爲什麼我無法訪問它。當我在這裏發佈它時,Stack Overflow似乎也剝離了這個角色。

有了這個代碼:

foreach($lead as $k => $v){ 
    var_dump($k); 
    die(); 
} 

結果表明,關鍵必須是9個字節長。

string(9) ""City"" 
    //↑ 

用十六進制查看器的幫助下,你還可以看到EF BB BF字符。所以,解決的辦法是使用foreach循環來獲取數組元素或使用正確的密鑰:

foreach($lead as $k => $v){ 
    echo $v; 
    break; 
} 

echo $lead[chr(0xEF) . chr(0xBB) . chr(0xBF) . '"City"']; 
+0

如果這個「string(9)」「City」「'是你的輸出,這意味着你的密鑰中有一些隱藏的字符,你不會在這裏複製。用十六進制查看器查看關鍵字,您應該看到3個「隱藏」字符。 – Rizier123

+0

請嘗試複製'var_dump($ k);'在github gist內部的輸出並在此處發佈鏈接。 – Rizier123

+0

https://gist.github.com/anonymous/0bb5c40493d2f4bdf7b54a1990074c6e – user990717