Каков наилучший способ проверить, является ли массив рекурсивным в PHP?
С учетом следующего кода:
<?php
$myarray = array('test',123);
$myarray[] = &$myarray;
print_r($myarray);
?>
В print_r() отобразится RECURSION, когда он попадет на третий элемент массива.
Кажется, нет другого способа сканирования массива для рекурсивные ссылки, поэтому, если вам нужно их проверить, вам придется используйте print_r() со своим вторым параметром для захвата вывода и просмотра для слова RECURSION.
Есть ли более элегантный способ проверки?
PS. Вот как я проверяю и получаю рекурсивные ключи массива с помощью regex и print_r()
$pattern = '/\n \[(\w+)\] => Array\s+\*RECURSION\*/';
preg_match_all($pattern, print_r($value, TRUE), $matches);
$recursiveKeys = array_unique($matches[1]);
Спасибо