2017-07-27 99 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