1. 程式人生 > >php:Illegal offset type in XXX錯誤原因及解決方法

php:Illegal offset type in XXX錯誤原因及解決方法

php提示錯誤:Illegal offset type in XXX,導致這個錯誤的原因是不能使用例項化的物件來作為陣列的索引,請檢查陣列變數的鍵名是否使用了例項化的物件變數或陣列。

我遇到的錯誤就是因為呼叫陣列的時候,陣列變數的鍵名使用了陣列。

程式碼如下:

//格式化資料,調整型別和級別資料顯示。$data為2維陣列。
private function formatact($data){
  if(is_array($data)){
     $all = Config::get('ACTIVITY_LEVEL_LIST');
     $atl = Config::get('ACTIVITY_TYPE_LIST');
     foreach($data as $d => $v){
       $data[$d]['level'] = isset($all[$v])?$all[$v]:'資料轉換異常';
       //錯誤寫法,其中$all[$v]中的$v是一個一維陣列。
       $data[$d]['type_id'] = isset($atl[$v['type_id']])?$atl[$v['type_id']]:'資料轉換異常';
       //正確寫法,呼叫$all[$v['type_id']]呼叫$v中的具體鍵名的值。
     }
     return $data;
  }else{
     return null;
  }
}