Моя цель состоит в том, чтобы в строке найти ключи предполагаемого массива и в этой строке заменить эти ключи соответствующими ключами из массива.
У меня есть небольшая полезная функция, которая находит все мои строки между 2 разделителями (ссылка в песочнице: https://repl.it/repls/UnlinedDodgerblueAbstractions):
function findBetween( $string, $start, $end )
{
$start = preg_quote( $start, '/' );
$end = preg_quote( $end, '/' );
$format = '/(%s)(.*?)(%s)/';
$pattern = sprintf( $format, $start, $end );
preg_match_all( $pattern, $string, $matches );
$number_of_matches = is_string( $matches[2] ) ? 1 : count( $matches[2] );
if( $number_of_matches === 1 ) {
return $matches[2];
}
if( $number_of_matches < 2 || empty( $matches ) ) {
return False;
}
return $matches[2];
}
Пример:
findBetween( 'This thing should output _$this_key$_ and also _$this_one$_ so that I can match it with an array!', '_$', '$_')
Должен вернуть массив со значениями ['this_key', 'this_one']
как оно есть. Вопрос в том, как я могу взять их и заменить их значениями ассоциативного массива?
Предположим, мой массив такой:
[
'this_key' => 'love',
'this_one' => 'more love'
];
Мой вывод должен быть таким:
This thing should output love and also more love so that I can match it with an array!
Как мне этого добиться?