<?php
$origin = ['value1', 'value2', 'value3', '-2', '2', '22'];
$replace_map = [
'value1' => 'replace1',
'value2' => 'replace2',
'value8' => 'replace8',
2 => 77
];
var_export(
preg_replace_callback(
'~^-?\K.*$~',
function ($m) use ($replace_map) {
return $replace_map[$m[0]] ?? $m[0];
},
$origin
)
);
var_export(
preg_replace_callback('~^-?\K.*$~', fn($m)=> $replace_map[$m[0]] ?? $m[0], $origin)
);
- Output for 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- array (
0 => 'replace1',
1 => 'replace2',
2 => 'value3',
3 => '-77',
4 => '77',
5 => '22',
)array (
0 => 'replace1',
1 => 'replace2',
2 => 'value3',
3 => '-77',
4 => '77',
5 => '22',
)
- Output for 7.3.0 - 7.3.33
- Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in /in/uSNDj on line 23
Process exited with code 255.
preferences:
96.29 ms | 407 KiB | 5 Q