xiste uma maneira de detectar matrizes circulares em PHP pur

Estou tentando implementar minha própria função de estilo serialização / var_dump no PHP. Parece impossível se houver a possibilidade de matrizes circulares (que existem).

Nas versões recentes do PHP, var_dump parece detectar matrizes circulares:

php > $a = array();
php > $a[] = &$a;
php > var_dump($a);
array(1) {
  [0]=>
  &array(1) {
    [0]=>
    *RECURSION*
  }
}

Como eu implementaria meu próprio tipo de serialização de método em PHP que pode detectar da mesma forma? Não consigo acompanhar as matrizes que visitei, porque a comparação estrita de matrizes no PHP retorna verdadeira para matrizes diferentes que contêm os mesmos elementos e a comparação de matrizes circulares causa um Erro Fatal, de qualquer maneir

php > $b = array(1,2);
php > $c = array(1,2);
php > var_dump($b === $c);
bool(true)
php > $a = array();
php > $a[] = &$a;
php > var_dump($a === $a);
PHP Fatal error:  Nesting level too deep - recursive dependency? in php shell code on line 1

Procurei uma maneira de encontrar uma identificação exclusiva (ponteiro) para uma matriz, mas não consigo encontrar uma. spl_object_hash funciona apenas em objetos, não em matrizes. Se eu transmitir váriosdiferent matrizes para objetos, todas elas obtêm o mesmo valor spl_object_hash (por quê?

EDITAR

hamar print_r, var_dump ou serializar em cada matriz e, em seguida, usar algum mecanismo para detectar a presença de recursão detectada por esses métodos é um pesadelo de complexidade algorítmica e basicamente tornará qualquer uso muito lento para ser prático em grandes matrizes aninhada

RESPOSTA ACEITADA:

Aceitei a resposta abaixo, que foi a primeira a sugerir a alteração temporária de uma matriz para verificar se ela é igual à de outra matriz. Isso responde a "como faço para comparar duas matrizes de identidade?" a partir do qual a detecção de recursão é trivial.

questionAnswers(8)

yourAnswerToTheQuestion