2016-11-08 2 views
-4

Ich versuche auf ein Array-Element zuzugreifen, aber aus irgendeinem Grund gibt mir das einige Probleme.Ich habe anscheinend ein nicht zugreifbares Array-Element

Also habe ich dieses Array innerhalb $lead:

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

Und ich versuche es so zuzugreifen:

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

Aber aus irgendeinem Grund bekomme ich einen nicht definierten Indexfehler:

Notice: Undefined index: "City"

Und ich habe keine Ahnung, warum das so ist?

EDIT:

Dies ist der Ausgang, wenn ich highlight_string(print_r($lead, TRUE));:

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

Auch mit diesem Code:

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

ich:

string(9) ""City"" 
+1

Ist das die Müllkippe von '$ leads' oder' $ lead' in Ihrem foreach Schleife? – Rizier123

+1

Ich stimme für das Schließen dieser Frage als Off-Topic, da die Frage ausreichend beantwortet wurde, dann vom Autor gelöscht und schließlich erneut veröffentlicht wurde. –

+0

Das ist nicht 'var_dump()' output ... – AbraCadaver

Antwort

1

Also dank der Kommentare scheint es, als hätte ich am Anfang meines Schlüssels eine UTF-8 BOM character (EF BB BF) und deshalb konnte ich nicht darauf zugreifen. Es schien auch so, als hätte Stack Overflow den Charakter entfernt, als ich ihn hier gepostet habe.

Mit diesem Code:

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

Es zeigte sich, dass der Schlüssel 9 Byte lang sein musste.

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

Mit Hilfe eines Hex-Viewer können Sie auch den EF BB BF Charakter sehen. So ist die Lösung eine foreach-Schleife zu verwenden, um das Array-Element zu erhalten oder die richtigen Schlüssel zu verwenden:

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

oder

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

Wenn diese 'string (9) "" Stadt "" 'Ihre Ausgabe ist, bedeutet dies, dass Sie versteckte Zeichen in Ihrem Schlüssel haben, die Sie hier nicht kopiert haben. Betrachte den Schlüssel mit einem Hex-Viewer und du solltest 3 "versteckte" Zeichen sehen. – Rizier123

+0

Bitte versuchen Sie, die Ausgabe von 'var_dump ($ k);' in einen GitHub zu kopieren und einen Link hier zu posten. – Rizier123

+0

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

Verwandte Themen