2016-04-15 13 views
0

私はExcelファイルジェネレータをコーディングしています。私はデータベースから所有者の名前を取得する必要がありますし、それらのすべてのために行われた手順のリスト。もちろん、すべての手順を1回だけ表示し、すべての手順が何回行われたかを示すカウンタを表示したいと思います。 私はこのコードでこれをやろうとしている:多次元配列未定義インデックス

// to get the list of owners 
$this->comms = $this->warehouse->getComms(); 

foreach($this->comms as $key=>$comm) 
{ 
    // producer/procedure [name] [counter] 
    $check1[] = array('comm'=>$comm->name, 'operations'=>array('operation'=>'', 'counter'=>0)); 

    // to get list of procedures for producer 
    $this->operations = $this->warehouse->getCommOperations($comm->id, $this->date_from_search, $this->date_to_search); 

    foreach($this->operations as $key=>$operation) 
    { 
     if(!in_array($operation->dsName, $check1[$comm->name]['operations']['operation'])) 
     { 
      $check1[$comm->name]['operations']=$operation->oService; 
      $check1[$comm->name][$operation->oService]['counter']++; 
     } 
     else 
     { 
      $check1[$comm->id][$operation->oService]['counter']++; 
     } 
    } 
} 

残念ながら、私は未定義のインデックス受けています:エデンの警告&警告:in_array()は、パラメータ2がin_arrayチェックラインで配列の警告であることを期待しています。私はどんな助けにも非常に感謝しています。

よろしくお願いいたします。 in_arrayを書き込む前に

+1

'$ CHECK1 [] =配列( 'COMM' を置換=> $ comm-> name、 '操作' => ... '$ check1 [$ comm-> name] = array( '操作' => ...'( '$ comm-> name'がユニークでなければ 'array_search'で' in_array'を変更する必要があります) – fusion3k

答えて

0
foreach($this->operations as $key=>$operation) 
    { 
    if(is_array($check1[$comm->name]['operations']['operation'])) 
    { 
     if(!in_array($operation->dsName, $check1[$comm->name]['operations']['operation'])) 
    { 
     $check1[$comm->name]['operations']=$operation->oService; 
     $check1[$comm->name][$operation->oService]['counter']++; 
    } 
    } 
    else 
    { 
    $check1[$comm->id][$operation->oService]['counter']++; 
    } 
} 

()($ CHECK1 [$ comm->名] [ '操作'] [ '操作'])IS_ARRAYを使用