2017-07-27 101 views
0

我有一個基本數組,我希望根據x字段值對其進行分組。我想保持這些值仍然在一個數組中。我已經嘗試了多種foreach,for循環,但沒有運氣得到它我想要的。我怎樣才能達到以下的預期結果?基於特定值的分組數組

$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,for循環」。所以告訴我們。 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