fork download
  1. <?php
  2.  
  3. $lst = [
  4. ["a" => 1, "b" => 1],
  5. ["a" => 1, "b" => 2],
  6. ["a" => 2, "b" => 1],
  7. ["a" => 2, "b" => 1],
  8. ];
  9.  
  10. $out = [];
  11. array_walk($lst, function($v, $k)use(&$out) {$out[$v['a']][] = $v;});
  12.  
  13. var_dump($out);
  14.  
Success #stdin #stdout 0.04s 24408KB
stdin
Standard input is empty
stdout
array(2) {
  [1]=>
  array(2) {
    [0]=>
    array(2) {
      ["a"]=>
      int(1)
      ["b"]=>
      int(1)
    }
    [1]=>
    array(2) {
      ["a"]=>
      int(1)
      ["b"]=>
      int(2)
    }
  }
  [2]=>
  array(2) {
    [0]=>
    array(2) {
      ["a"]=>
      int(2)
      ["b"]=>
      int(1)
    }
    [1]=>
    array(2) {
      ["a"]=>
      int(2)
      ["b"]=>
      int(1)
    }
  }
}