2016-05-04 8 views
0

私はこのような配列を持っています。同じ名前の配列があります。グラント1、グラント2など...そして、彼らは同じ場所にいなければならない多くのプロジェクトを持っています。たとえば:マルチアレーを同じキーで結合するにはどうすればいいですか?

array:5 [▼ 
    0 => array:2 [▼ 
    0 => "Grant 1" 
    1 => Project {#423 ▶} 
    2 => Project {#421 ▶} 
    3 => Project {#424 ▶} 
    ] 
    1 => array:2 [▼ 
    0 => "Grant 1"   
    1 => Project {#412 ▶} 
    2 => Project {#419 ▶} 
    ] 
] 

てください:グラント1 2を付与するために起こると私はそれらを組み合わせたい

array:5 [▼ 
    0 => array:2 [▼ 
    0 => "Grant 1" 
    1 => Project {#423 ▶} 
    ] 
    1 => array:2 [▼ 
    0 => "Grant 1" 
    1 => Project {#421 ▶} 
    ] 
    2 => array:2 [▼ 
    0 => "Grant 2" 
    1 => Project {#412 ▶} 
    ] 
    3 => array:2 [▼ 
    0 => "Grant 1" 
    1 => Project {#424 ▶} 
    ] 
    4 => array:2 [▼ 
    0 => "Grant 2" 
    1 => Project {#419 ▶} 
    ] 
] 

にする必要があり、同じこと1.付与する所属情報が含まれている必要があります助けて。おかげで、

答えて

0

私はあなたがforeachを使用することができると思う:

$newArray = []; 
foreach ($array as $value) { 
    $newArray[$value[0]][] = $value[1]; 
} 

そして、あなたはこのような配列があります。このような

array:5 [▼ 
    "Grant 1" => array:2 [▼ 
    1 => Project {#423 ▶} 
    2 => Project {#421 ▶} 
    3 => Project {#424 ▶} 
    ] 
    "Grant 2" => array:2 [▼ 
    1 => Project {#412 ▶} 
    2 => Project {#419 ▶} 
    ] 
] 

か何か(感謝@AbraCadaver):

$newArray = []; 
foreach ($array as $value) { 
    if (isset($newArray[$value[0]] { 
     $newArray[$value[0]][] = $value[1]; 
    } else { 
     $newArray[$value[0]] = $value; 
    } 
} 

アレイ必要なもの:

array:5 [▼ 
    0 => array:2 [▼ 
     0 => "Grant 1" 
     1 => Project {#423 ▶} 
     2 => Project {#421 ▶} 
     3 => Project {#424 ▶} 
    ] 
    1 => array:2 [▼ 
     0 => "Grant 1"   
     1 => Project {#412 ▶} 
     2 => Project {#419 ▶} 
    ] 
] 
+0

ありがとうございました! @ –

+2

二番目のforeachは不要です: 'foreach($ array as $ value){ if(isset($ newArray [$ value [0])){ $ newArray [$ value [0]] [ ] = $値[1]; } else { $ newArray [$ value [0]] = $ value; } } ' – AbraCadaver

+0

@AbraCadaverはい、いいですね。ありがとうございました。 – Iwan

関連する問題