2012-07-31 43 views
1

我是蛋糕PHP的新手。我試圖運行我最近下載的應用程序,但它不起作用。蛋糕PHP:未定義的抵消錯誤

我的debug.log文件說: 2012-07-31 12:31:47調試:注意(8):未定義偏移量:0 [C:\ wamp \ www \ app \ models \ vwbrowse.php, line 78]

和我的error.log文件: 2012-07-31 12:31:47警告:警告(2):array_keys()期望參數1是數組,null [C:\ wamp \ WWW \程序\型號\ 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_keys($ results [0]); **

有什麼問題?預先感謝解決方案。

+0

'$ results'不包含你認爲它的功能。 'var_dump($ results)'看看它包含了什麼 - 我懷疑它不是一個多維數組,如果你期望的話。 – 2012-07-31 12:45:41

+0

'$ results'是一個數組,但它沒有索引作爲'0'。所以請嘗試使用var_dump – Prabhuram 2012-07-31 12:53:06

回答

2

您正在檢查$results是不是數組,然後告訴您的腳本在其上執行array_keys()。不計算。

此外,您正嘗試訪問$results[0],但未確認0 th索引存在。

請先嚐試:

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

是的,這很奇怪,以後會失敗,但是現在OP的失敗是'else'條件中的_other_對'array_keys($ results [0])的調用。 – 2012-07-31 12:51:27

+0

@邁克爾好眼睛......我錯過了。編輯答案以反映這種新的認識。 – Matt 2012-07-31 12:52:13

0

undefined index錯誤,指出數組的索引,你的情況[0]是不確定的。

您正在檢查$results是否爲帶有if (!is_array($results))的數組,但如果它有任何數據則不會。嘗試將其更改爲if (!is_array($results) || (count($results) == 0))