2017-09-24 9 views
-1

キーがあらかじめ定義されていない配列を生成する必要があります。私は、だから私は、各ユーザーが領域を所有していることを大陸、そしてどのようにするための「キー」を含む$summaryで終わるphp配列キーを即座に作成

$summary = []; 

for ($i = 0; $i < count($owners); $i++) { 
    for ($j = 0; $j < count($regions); $j++) { 

     if ($owners[$i]['id'] == $regions[$j]['owner_id']) { 
      $summary[ $regions[$j]['continent_id'] ]++;  <-- NEED HELP HERE 
     } 

    } 
} 

を生成したい

regions = [ 
    { 
    "id":1, 
    "name":"Alaska", 
    "continent_id":5, 
    "owner_id":3, 
    .... 
    }, 
    { 
    "id":2, 
    "name":"Greenland", 
    "continent_id":5, 
    "owner_id":7, 
    .... 
    } 

私はこの配列を持っています各大陸にあるかもしれない。

上記は、undefined indexを返すように機能しません。アレイキーをオンザフライで生成し、カウントを保持するにはどうすればよいですか?

私の予想される出力は次のとおりです。

$summary = ['1' => 12, '3' => 5, '5' => 7]; 

$summary[1] = 12; 
$summary[3] = 5; 
$summary[5] = 7; 
+1

期待される出力も入れてください。 – Ravi

+0

こんにちは@Ravi、私はqを更新しました。ありがとう – TheRealPapa

+0

どのような基準であなたはIdsを取得していますか?または特定のIDに値を割り当てる? – Ravi

答えて

0

あなたが最初の「continent_id」が特定の値に遭遇した場合 - あるいは実際には以前に遭遇されていない配列の任意の要素は、それがissetを行う方が良いでしょう必要に応じて作成します。

if ($owners[$i]['id'] == $regions[$j]['owner_id']) { 
    if (isset($summary[ $regions[$j]['continent_id'] ]) === false) { 
     $summary[ $regions[$j]['continent_id'] ] = 0; 
    } 
    $summary[ $regions[$j]['continent_id'] ]++; 
} 
関連する問題