我的代码有什么问题:
$i = new RegexIterator(
new ArrayIterator(array(
'test1'=>'test888',
'test2'=>'what?',
'test3'=>'test999')),
'/^test(.*)/',
RegexIterator::REPLACE);
foreach ($i as $name=>$value)
echo $name . '=>' . $value . "\n";
迭代器是空的,为什么?感谢您的帮助!
最佳答案
如果您省略操作模式(新 RegexIterator 语句中的第 3 个参数),您将获得匹配值,如下所示:
$array = array('test1' => 'test888', 'test2' => 'what?', 'test3' => 'test999');
$pattern = '/^test(.*)/';
echo '<pre>';
echo "DEFAULT\n";
$arrayIterator = new ArrayIterator($array);
$regexIterator = new RegexIterator($arrayIterator, $pattern);
foreach ($regexIterator as $value) {echo "$value\n";}
echo '</pre>';
您可以根据需要使用不同的操作模式。继续阅读 setMode 文档:http://www.php.net/manual/en/regexiterator.setmode.php
关于php - 如何使用 RegexIterator::REPLACE 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1957069/