isset() 似乎不适用于数组

isset() does not seem to work on an array

我正在处理一段现有的 PHP 代码并尝试理解它以便调试问题:

echo "Got here !!!\n";
var_dump($aHeaders);
if (isset($aHeaders['SALESCHANNEL'])) {
    echo "aHeaders['SALESCHANNEL'] is set\n";
    ...
} elseif (isset($aHeaders['SALESUNIT'])) {
    echo "aHeaders['SALESUNIT'] is set\n";
    ...
}
echo "Got there !!!\n";

我得到以下输出:

Got here !!!
array(1) {  
 ["EMAIL,FIRSTNAME,LASTNAME,PHONE,TITLE,DATEOFBIRTH,SALESUNIT,LANGUAGE,STATUS,IS_RESELLER,CUSTOMDATE,ADDRESS_1,ADDRESS_2,CITY,COUNTRY,ZIPCODE,"]=>
int(0) }
Got there !!!

我不是 PHP 方面的专家,但我相信我应该看到:

aHeaders['SALESUNIT'] is set

在输出中。出了什么问题?

我的 PHP 版本是 PHP 5.5.30 如果重要的话。

您目前拥有的是:

$arr1 = array('EMAIL,FIRSTNAME,LASTNAME,PHONE,TITLE,DATEOFBIRTH,SALESUNIT,LANGUAGE,STATUS');

isset() 只有在满足以下条件时才有效:

$arr2 = array(
    'EMAIL' => 'blah',
    'FIRSTNAME' => 'blah',
    'LASTNAME' => 'blah',
    'PHONE' => 'blah',
    'TITLE' => 'blah',
    'DATEOFBIRTH' => 'blah',
    'SALESUNIT' => 'blah',
    'LANGUAGE' => 'blah',
    'STATUS' => 'blah'
);

使用下面的代码

echo "Got here !!!\n";
var_dump($aHeaders);
// get the keys to array
$array_keys = array_keys($aHeaders)
// explode the array keys with comma
$array_values = explode(',',$array_keys[0]);
if (in_array('SALESCHANNEL',$array_values)) {
    echo "aHeaders['SALESCHANNEL'] is set\n";
    ...
} elseif (in_array('SALESUNIT',$array_values)) {
    echo "aHeaders['SALESUNIT'] is set\n";
    ...
}
echo "Got there !!!\n";