Удалить дубликат в массиве на основе значения столбца

Мне нужна помощь. У меня есть следующий массив:

$result = array( 0 => array('a'=>1,'b'=>'data1'), 1 => array('a'=>2,'b'=>'data2'), 2 => array('a'=>1,'b'=>'data3'), ); 

Я хочу удалить повторяющиеся строки, сравнивая значения столбца «a». Ожидаемый результат должен быть:

 array( 0 => array('a'=>1,'b'=>'data1'), 1 => array('a'=>2,'b'=>'data2'), ); 

Или:

 array( 1 => array('a'=>2,'b'=>'data2'), 2 => array('a'=>1,'b'=>'data3'), ); 

Есть ли простой способ сделать это?

Вы можете создать небольшой массив из всех возможных значений поля a используя array_map() , захватить все уникальные значения из него с помощью array_unique() а затем пересечь его с исходным массивом, используя array_intersect_key() .

 $output = array_intersect_key( $result, array_unique(array_map(function($item) { return $item['a']; }, $result)) ); 

Или, начиная с 5.5:

 $output = array_intersect_key($result, array_unique(array_column($result, 'a')));