2017-03-25 4 views
0

私はPHPを使用しています。私は多次元配列を持っています。PHP配列と存在しない場合の2つのサブ配列の作成

サブアレイ[65] [1]と[155] [1]が存在しなければならないという考えがあります。同時に、サブアレイ[65] [2]と[155] [2]が存在するはずです。

つまり、[nn] [1]と[nn] [2]が存在する必要があります。

存在しないサブアレイを自動的に追加したいと考えています。私はPHPでそれをする方法を知らない。

私は配列を通り、存在しないサブ配列を作成するコードを探しています。

ここは例です。

Array (
    [65] => Array (
    [1] => Array (
     [2] => Array (
     [points] => 0000000600 
     [competition] => 0000000011 
    ) 
    ) 
) 

    [155] => Array (
    [1] => Array (
     [2] => Array (
     [points] => 0000000900 
     [competition] => 0000000011 
    ) 
    ) 

    [2] => Array (
     [1] => Array (
     [points] => 0000000750 
     [competition] => 0000000025 
    ) 
    ) 
) 
} 

ただし、サブアレイ[65] [2]は存在しません。

私が配列を通り、存在しないサブ配列を作成するコードを探しています。

結果は次のようになります。

Array (
    [65] => Array (
    [1] => Array (
     [2] => Array (
     [points] => 0000000600 
     [competition] => 0000000011 
    ) 
    ) 

/* this should be added automatically */ 

    [2] => Array (
     [1] => Array (
     [points] => 0000000000 
     [competition] => 0000000000 
    ) 
    ) 
) 

/* */ 

    [155] => Array (
    [1] => Array (
     [2] => Array (
     [points] => 0000000900 
     [competition] => 0000000011 
    ) 
    ) 

    [2] => Array (
     [1] => Array (
     [points] => 0000000750 
     [competition] => 0000000025 
    ) 
    ) 
) 
} 

答えて

0

私が正しくあなたを理解している場合、あなたのメインアレイ内のすべての要素自体が配列され、それぞれが持っている必要があり、両方の[1]と[2 ]要素。これはarray_key_exists()機能で確認できます。次のようなもの:

foreach($rg as $rgkey) { 
    if(!array_key_exists(1,$rg[$rgkey])) { 
     /* code to initialize $rg[$rgkey][1] */ } 
    if(!array_key_exists(2,$rg[$rgkey])) { 
     /* code to initialize $rg[$rgkey][2] */ } 
    } 
+0

ありがとうございます。あなたのコードには2)がありません。それ以降は正常に動作するかもしれませんが、使用できません。私の配列名はrgです。 – xms

+0

ごめんなさい。配列名をrgに変更しました。スニペットを使用できない別の理由がありますか? –

関連する問題