объединить повторяющиеся значения массива в многомерном массиве php

У меня многомерный массив,

Array ( [0] => Array ( [id] => 1 [email_id] => ok@gmail.com [password] => test ) [1] => Array ( [id] => 2 [email_id] => check@gmail.com [password] => test ) [2] => Array ( [id] => 3 [email_id] => an@gmail.com [password] => pass ) ) 

Здесь, в приведенном выше массиве, ключ пароля имеет одинаковое значение в двух ключах, мне нужно объединить массивы, которые имеют повторяющиеся значения, чтобы получить следующий вывод,

 Array ( [0] => Array ( [0] => Array ( [id] => 1 [email_id] => ok@gmail.com [password] => test ) [1] => Array ( [id] => 2 [email_id] => check@gmail.com [password] => test ) ) [1] => Array ( [id] => 3 [email_id] => an@gmail.com [password] => pass ) ) 

Как это сделать? Я пробовал циклы array_merge и foreach, но я не могу получить этот вывод

Пытаться,

 $arr = array( array('id'=>1, 'email_id'=>'ok@gmail.com', 'password'=>'test'), array('id'=>2, 'email_id'=>'check@gmail.com', 'password'=>'test'), array('id'=>3, 'email_id'=>'an@gmail.com', 'password'=>'pass')); $new_arr = array(); foreach($arr as $k => $v) { if( is_array($arr[$k+1]) && $arr[$k]['password'] === $arr[$k + 1]['password'] ) $new_arr[] = array($arr[$k], $arr[$k+1]); else if( in_array_recursive($arr[$k]['password'], $new_arr) === FALSE ) $new_arr[] = $v; } function in_array_recursive( $val, $arr) { foreach( $arr as $v ) { foreach($v as $m) { if( in_array($val, $m ) ) return TRUE; } } return FALSE; } print_r($new_arr); 

демонстрация