在PHP中,检查数组是否递归的最佳方法是什么?
给定以下代码:
<?php
$myarray = array('test',123);
$myarray[] = &$myarray;
print_r($myarray);
?>
从PHP手册:
当print_r()函数到达数组的第三个元素时,将显示RECURSION。
似乎没有其他方法可以扫描具有递归引用的数组,所以如果你需要检查它们,你必须使用print_r()和它的第二个参数来捕获输出并查找单词RECURSION。
有更优雅的检查方式吗?
附:这是我使用正则表达式和print_r()检查和获取递归数组键的方法。
$pattern = '/\n \[(\w+)\] => Array\s+\*RECURSION\*/';
preg_match_all($pattern, print_r($value, TRUE), $matches);
$recursiveKeys = array_unique($matches[1]);
谢谢