<?php

$lst = [
  ["a" => 1, "b" => 1],
  ["a" => 1, "b" => 2],
  ["a" => 2, "b" => 1],
  ["a" => 2, "b" => 1],
];

$out = [];
array_walk($lst, function($v, $k)use(&$out) {$out[$v['a']][] = $v;});

var_dump($out);
