RecursiveRegexIterator无法匹配多维数组

时间:2016-01-14 12:24:55

标签: spl

<?php
$arr = array('a','ab','cd',array('ef','ad',array('cd','ae')));
$arrayIterator = new RecursiveArrayIterator($arr);

$it = new RecursiveRegexIterator($arrayIterator,'/^a\w*/',RecursiveRegexIterator::MATCH);

$recursiveIterator = new RecursiveIteratorIterator($it,RecursiveIteratorIterator::LEAVES_ONLY);

print_r(iterator_to_array($recursiveIterator,false));

?>

我希望得到所有以字母开头的字符串&#39; a&#39;, 但它无法匹配2D,3D中的字符串......

1 个答案:

答案 0 :(得分:1)

您的代码似乎受到PHP 5.5.19中解决的SPL错误(https://bugs.php.net/bug.php?id=68128)的影响。

请查看以下示例:https://3v4l.org/6H2oI

您最好的选择是将您的PHP版本升级到最新的PHP 5.5版本(请注意,此版本不再受支持,建议升级到php 5.6)