¿Cómo puedo obtener múltiples ocurrencias de una matriz multidimensional?

Obtengo registros de mi base de datos como tal,

$q = $dbc -> prepare("SELECT id, username, loginIP FROM accounts"); $q -> execute(); while ($accounts = $q -> fetch(PDO::FETCH_ASSOC)) { var_dump($accounts); } 

Esto me da todos los nombres de usuario y id y ips de los usuarios,

¿Cómo puedo verificar múltiples ocurrencias de IPS? La IP se almacena usando ip2long , he intentado lo siguiente,

  $multiple = array_diff($accounts, array_unique($accounts)); var_dump($multiple); 

Pero no funcionó?

Versión alternativa: use una solicitud SQL para encontrar los duplicados. Algo como esto:

 $q = $dbc -> prepare("SELECT a.id, a.username, a.loginIP FROM accounts a, (SELECT loginIP FROM accounts GROUP BY loginIP HAVING COUNT(*)>1) d WHERE d.loginIP = a.loginIP"); $q -> execute(); $accounts = array(); while ($acc = $q -> fetch(PDO::FETCH_ASSOC)) { $accounts[$acc['loginIP']] = $acc; } var_dump($accounts); 

Solo duplicados aparecerán en $ cuentas con direcciones IP como teclas de matriz.

Supongo que, en función de los datos que está consultando y la forma en que plantea la pregunta, está buscando direcciones IP que estén vinculadas a varios usuarios porque o bien

a. ¿Quieres ver cuántos usuarios reales están vinculados a una sola ip
segundo. Averigüe cuántas cuentas duplicadas provienen de la misma persona.

Creo que algo así hace lo que buscas.

  1; } $many_accounts = array_filter($ip_accounts, 'multi_accounts'); print_r($many_accounts); 

SALIDA DE MUESTRA

 [3232235821] => Array ( [0] => Array ( [id] => 22 [username] => u22 ) [1] => Array ( [id] => 33 [username] => u33 ) ) [3232235830] => Array ( [0] => Array ( [id] => 25 [username] => u25 ) [1] => Array ( [id] => 31 [username] => u31 ) [2] => Array ( [id] => 51 [username] => u51 ) [3] => Array ( [id] => 91 [username] => u91 ) [4] => Array ( [id] => 92 [username] => u92 ) )