蛋糕PHP:未定义的偏移量错误

蛋糕PHP:未定义的偏移量错误,php,debugging,cakephp,Php,Debugging,Cakephp,我是蛋糕PHP的新手。我正在尝试运行我最近下载的应用程序,但它不工作 我的debug.log文件显示: 调试:注意(8):在[C:\wamp\www\app\models\vwbrowse.php,第78行]中未定义的偏移量:0 和我的error.log文件: 2012-07-31 12:31:47警告:警告(2):array_keys()要求参数1为数组,在[C:\wamp\www\app\models\vwbrowse.php,第78行]中给出空值 最后,这是导致问题的函数: functio

我是蛋糕PHP的新手。我正在尝试运行我最近下载的应用程序,但它不工作

我的debug.log文件显示: 调试:注意(8):在[C:\wamp\www\app\models\vwbrowse.php,第78行]中未定义的偏移量:0

和我的error.log文件: 2012-07-31 12:31:47警告:警告(2):array_keys()要求参数1为数组,在[C:\wamp\www\app\models\vwbrowse.php,第78行]中给出空值

最后,这是导致问题的函数:

function afterFind($results, $primary)
{
    if(!$primary) return $results;

    $ret = array();

    //we are primary and not part of an associated find
    if(!is_array($results)) //find first
    {
        $tables = array_keys($results);
        $record = array();
        foreach($tables as $table){
            $record = array_merge($record,$result[$table]);
        }
        $ret['Vwbrowse'] = $record;

    }else{ //merge all arrays if separated
        $tables = array_keys($results[0]);
        foreach($results as $result){
            $record['Vwbrowse'] = array();
            foreach($tables as $table){
                $record['Vwbrowse'] = array_merge($record['Vwbrowse'],$result[$table]);
            }
            $ret[] = $record;
        }
    }

    return $ret;
}
**这是第78行:$tables=array_key($results[0]); **


怎么了?提前感谢您提供的解决方案。

您正在检查
$results
是否不是数组,然后告诉脚本对其执行
array\u keys()
。不计算

此外,您正在尝试访问
$results[0]
,而不确认
0
第个索引是否存在

先试试这个:

if (array_key_exists(0, $results)) { ... }

未定义索引
错误表示数组的索引(在您的示例中为
[0]
未定义)


您正在检查
$results
是否是带有
的数组,如果(!is_array($results))
,则不检查它是否有任何数据。如果(!is_array($results)| |(count($results)==0))

$results
不包含您认为它包含的内容,请尝试将其更改为
var\u dump($results)
查看它包含的内容-我怀疑它不是您期望的多维数组。
$results
是一个数组,但它没有索引
0
。因此,请尝试使用var_dumpYep,这很奇怪,稍后会失败,但OP现在失败的是在
else
条件下对
数组键($results[0])
的另一个调用。@Michael good eyes…我错过了。编辑答案以反映这一新的认识。