Intereting Posts
Получение Fatal Error Uncaught CurlException: 26: не удалось открыть файл В PHP вы можете создать экземпляр объекта и вызвать метод в одной строке? jQuery удалить идентификатор из элемента с помощью ajax базы данных и обновить Преобразование json в массив с помощью рекурсивного метода? Как использовать PHP включает в себя несколько каталогов / подкаталогов с относительными путями Рассчитать возраст, основанный на дате рождения Лучший способ проверить, нет ли массива PHP PHP JAXB Эквивалент сравнить часть строки, используя php Нет следующего набора результатов. Пожалуйста, вызовите mysqli_more_results () / mysqli :: more_results (), чтобы проверить, следует ли вызывать эту функцию / метод Как получить доступ к PHP с командной строкой в ​​Windows? Должен ли я изменить $ _REQUEST на $ _POST Более быстрый веб-сайт, объединяя файлы CSS в одном файле – Laravel Немногие функции отладчика ladybug не работают в приложении symfony2 php Символы классов Symfony2 / Doctrine2 для многоразового пакета

как работать с RegexIterator :: REPLACE mode?

Что не так в моем коде:

$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), вы получите соответствующие значения, например:

 $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. Я сообщил об этом на php.net: http://bugs.php.net/bug.php?id=50579

Рассмотрим следующий код

 $mixedArray=array( 'tester2', 'tes1', 'bad4', '2good2', '2birds', 'birds8', '8young girls', '6 young boys' ); $ait=new ArrayIterator($mixedArray); $regexIt=new RegexIterator($ait,'/^(\d+)(\w+)/', RegexIterator::REPLACE); $regexIt->replacement='$2:$1'; foreach($regexIt as $key=>$value){ echo $value."<br>"; } 

Вывод

 good2:2 birds:2 young:8 girls