3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'car_porsche', 'caravan', 'car', 'motorcycle_suzuki', 'motorcycle_carabela', ]; $search = 'car'; function keepIfStartsWith_regex(array $haystack, string $needle): array { return preg_grep('/^' . preg_quote($needle, '/') . '/', $haystack); } function removeIfStartsWith_regex(array $haystack, string $needle): array { return preg_grep('/^' . preg_quote($needle, '/') . '/', $haystack, PREG_GREP_INVERT); } function keepIfStartsWith_PHP8(array $haystack, string $needle): array { return array_filter($haystack, fn($v) => str_starts_with($v, $needle)); } function removeIfStartsWith_PHP8(array $haystack, string $needle): array { return array_filter($haystack, fn($v) => !str_starts_with($v, $needle)); } function keepIfStartsWith_PHP7_4(array $haystack, string $needle): array { return array_filter($haystack, fn($v) => strpos($v, $needle) === 0); } function removeIfStartsWith_PHP7_4(array $haystack, string $needle): array { return array_filter($haystack, fn($v) => strpos($v, $needle) !== 0); } function keepIfStartsWith_sub7_4(array $haystack, string $needle): array { return array_filter($haystack, function($v) use($needle) { return strpos($v, $needle) === 0; }); } function removeIfStartsWith_sub7_4(array $haystack, string $needle): array { return array_filter($haystack, function($v) use($needle) { return strpos($v, $needle) !== 0; }); } $functions = [ 'keepIfStartsWith_regex', 'removeIfStartsWith_regex', 'keepIfStartsWith_PHP8', 'removeIfStartsWith_PHP8', 'keepIfStartsWith_PHP7_4', 'removeIfStartsWith_PHP7_4', 'keepIfStartsWith_sub7_4', 'removeIfStartsWith_sub7_4', ]; foreach ($functions as $fn) { echo "$fn: " . json_encode(array_values($fn($array, $search))) . "\n"; }
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
keepIfStartsWith_regex: ["car_porsche","caravan","car"] removeIfStartsWith_regex: ["motorcycle_suzuki","motorcycle_carabela"] keepIfStartsWith_PHP8: ["car_porsche","caravan","car"] removeIfStartsWith_PHP8: ["motorcycle_suzuki","motorcycle_carabela"] keepIfStartsWith_PHP7_4: ["car_porsche","caravan","car"] removeIfStartsWith_PHP7_4: ["motorcycle_suzuki","motorcycle_carabela"] keepIfStartsWith_sub7_4: ["car_porsche","caravan","car"] removeIfStartsWith_sub7_4: ["motorcycle_suzuki","motorcycle_carabela"]

preferences:
96.11 ms | 408 KiB | 5 Q