2017-07-27 16 views
0

私はxフィールド値に基づいてグループ化したい基本的な配列を持っています。値を1つの配列に保存したいと思います。私はループのためにforeach、複数のものを試したが、私はどのようにそれを得るために運がない。どのように私は以下の望ましい結果を達成することができますか?特定の値に基づいて配列をグループ化する

$originalArray = [ 
    [ 
     'x' => 'test', 
     'y' => 'blah', 
    ], 
    [ 
     'x' => 'test', 
     'y' => 'blah', 
    ], 
    [ 
     'x' => 'test2', 
     'y' => 'blah', 
    ], 
    [ 
     'x' => 'test2', 
     'y' => 'blah', 
    ], 
]; 

Desired Result: 
[ 
    'test' => [ 
     [ 
      'x' => 'test', 
      'y' => 'blah', 
     ], 
     [ 
      'x' => 'test', 
      'y' => 'blah', 
     ], 
    ], 
    'test2' => [ 
     [ 
      'x' => 'test2', 
      'y' => 'blah', 
     ], 
     [ 
      'x' => 'test2', 
      'y' => 'blah', 
     ], 
    ], 
]; 
+2

あなたが何かをしようとした場合、あなたは私たちに、コードを表示することができますか? – Maxime

+2

この場合@Maximeに同意します。あなたは "私はループのためにforeach、複数のものを試した"と言っている。だから私たちを見せてください。 SOは**無料のコーディングまたはチュートリアルサービスではありません**。あなたは自分の問題を解決するためにいくつかの力を入れていることを示す必要があります。そのことを念頭に置いて、あなた自身の研究の魅力を見せてください。 – icecub

答えて

4

希望これはあなたが望むものである:

$originalArray = [ 
    [ 
     'x' => 'test', 
     'y' => 'blah', 
    ], 
    [ 
     'x' => 'test', 
     'y' => 'blah', 
    ], 
    [ 
     'x' => 'test2', 
     'y' => 'blah', 
    ], 
    [ 
     'x' => 'test2', 
     'y' => 'blah', 
    ], 
]; 
$desired_array = array(); 
foreach ($originalArray as $key => $value) { 
    $desired_array[$value['x']][]=$value; 
} 
var_dump($desired_array); 
+0

これは実際には非常に素晴らしいです!入力配列が混在していても、これは引き続き有効です。私が感銘を受けた! +1 – icecub

+0

これはすごくうまくいった。 icecubに言及されているように、それはまだ混ざり合っていてもうまくいきます。 – MaryCoding

関連する問題