3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = <<<'EOT' <? $array = [ 'KEY_1' => 'VALUE_1', 'KEY_2' => 'VALUE_2', 'KEY_3' => 'VALUE_3', ]; EOT; $array = []; $key = null; $state = 0; foreach(token_get_all($str) as $token) { if(isset($token[0])) { if($token[0] === T_DOUBLE_ARROW) { $state = 1; } else if($token[0] === T_CONSTANT_ENCAPSED_STRING) { if($state === 0) { $key = substr($token[1], 1, -1); $state = 1; } else { $array[$key] = substr($token[1], 1, -1); $state = 0; } } } } var_dump($array);

preferences:
41.59 ms | 402 KiB | 5 Q