- microtime: documentation ( source)
- str_replace: documentation ( source)
- explode: documentation ( source)
<?php
$input = '1|27|31|33';
$separator = '##|##';
$iterations = 100000;
$time = microtime(true);
for ($i = 0; $i < $iterations; $i++) {
$result = str_replace('|', $separator, $input);
}
$time1 = microtime(true);
echo 'processed in ' . (($time1 - $time) * 1000) . ' millisecs';
for ($i = 0; $i < $iterations; $i++) {
$result = '';
$it = new CachingIterator(new ArrayIterator(explode('|', $input)), CachingIterator::FULL_CACHE);
foreach ($it as $categoryId) {
$result .= $categoryId;
if ($it->hasNext()) {
$result .= $separator;
}
}
}
$time2 = microtime(true);
echo 'processed in ' . (($time2 - $time1) * 1000) . ' millisecs';