为什么我不能引用这个似乎存在的数组索引?

时间:2010-07-09 02:47:45

标签: php cakephp

我从商家帐户获得了一个返回字符串,如下所示:

RecurringID=8675309&RefNo=41:39&Notes=

所以我把它解析成这样的数组:

$results = array();
$temp = explode('&', $temp);
foreach($temp as $line)
{
    $line = explode('=', $line);
    $results[trim($line[0])] = trim($line[1]);
}

结果 print_r($ results); 产生:

Array ( [RecurringID] => 8675309 [RefNo] => 41:39 [Notes] => ) 

但是当我尝试这个时:

$blah = $results['RecurringID'];

我明白了:

Notice (8) : Undefined index:  RecurringID

2 个答案:

答案 0 :(得分:0)

我无法重现此错误。您是在定义RecurringID索引之前使用它吗?

您知道parse_str()

吗?
$temp = 'RecurringID=8675309&RefNo=41:39&Notes=';
parse_str($temp, $results);

print "<pre>";
print_r($results);
print "</pre>";

$results有这个:

Array
(
    [RecurringID] => 8675309
    [RefNo] => 41:39
    [Notes] => 
)

这很好用:

print $results['RecurringID']; //8675309

即使我添加:

,我也无法复制你的警告
error_reporting(E_ALL);

......高于一切。

答案 1 :(得分:0)

啊哈!我的问题是将它输出到浏览器,我看不到完整的返回值。 结果看看ascii值显示:

\r\n\t\t<html><body>RecurringID=1488819&RefNo=186:192&Notes=</body></html>

这显然令人困惑的是parse_str和我的解析手动方法。