蛋糕PHP:未定义的偏移量错误
我是蛋糕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行]中给出空值 最后,这是导致问题的函数:蛋糕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
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…我错过了。编辑答案以反映这一新的认识。