2016-10-17 15 views
0

私は2つの配列を持っています。私は2つの配列の比較の後に3番目の配列を作りたいと思います。次のようにコードがある:異なる長さの3つのループを反復する - PHP

foreach($allrsltntcatg as $alltests) 
{ 
    foreach($alltests as $test) 
    { 
    foreach($allCatgs as $catg) 
    { 
     if($catg['testcategoryid'] == $test['testcategory_testcategoryid']) 
     { 
     $catcounts[$catg['testcategoryname']] +=1; 
     } 
    } 
    } 
} 

それは、戻って正しい答えが、それはまた、PHPのエラーを生成し、未定義のインデックスとプリントすべてのエラーとも正しい答えを言います。

私は配列外のエラーを避けたいだけです。あなたが最初と配列は、$catg['testcategoryname']として未定義のインデックスのいくつかの算術演算を追加しようとすると、あなたが値

if($catg['testcategoryid'] == $test['testcategory_testcategoryid']) 
{ 
    if (isset($catcounts[$catg['testcategoryname']])) 
     $catcounts[$catg['testcategoryname']] +=1; 
    else 
     $catcounts[$catg['testcategoryname']] =1; 
} 
+0

あなたの配列を示してください –

+1

"私は** 3つの2 **アレイを持っています"。 –

+0

配列が$ catg ['testcategoryname'] 'のような未定義インデックスの算術演算を' $ catcounts'配列に追加しようとすると、警告が生成されます。 __数値を追加する前に、インデックスが存在するかどうかをチェックしなければなりません。それ以外の場合は値を割り当てます.____ –

答えて

1

問題がである私を助けて$catcounts配列内に警告が生成されます。番号を追加する前に、インデックスが存在するかどうかをチェックしなければなりません。 See more

+0

特に気をつけてくれてありがとうございました。 –

+0

ようこそ。この回答を正しいものとして受け入れてください:-) –

0

をインクリメントすることができるよりも、配列を初期化する必要があります。親切に以下のような正確な条件を場合

0

$catg['testcategoryname'] exists--配列のキーの詳細

だから、このような方法でそれを行うだけであればcondition-

if(....){ 
    if(array_key_exists($catg['testcategoryname'], $catcounts)) 
     $catcounts[$catg['testcategoryname']] +=1; // Add into it 
    else 
     $catcounts[$catg['testcategoryname']] = 1; // Assign only 

} 

$catcounts配列のインデックスを表している必要があります。

関連する問題