HH\Lib\Str\replace_every_ci

Meta Engineer?

This is available as Str\replace_every_ci in the www repository.

Returns the "haystack" string with all occurrences of the keys of $replacements replaced by the corresponding values (case-insensitive)

namespace HH\Lib\Str;

function replace_every_ci(
  string $haystack,
  KeyedContainer<string, string> $replacements,
): string;

Replacements are applied in the order they are specified in $replacements, and the new values are searched again for subsequent matches. For example, dict['a' => 'b', 'b' => 'c'] is equivalent to dict['a' => 'c'], but dict['b' => 'c', 'a' => 'b'] is not, despite having the same elements.

If there are multiple overlapping matches, the match occuring earlier in $replacements (not in $haystack) takes precedence.

Guide

Parameters

Returns

  • string

Examples

$result = Str\replace_every_ci("example_string", dict["example"=>"test", "string"=>"value"]);
echo($result);
//result: test_value

$result = Str\replace_every_ci("example_string", dict["EXAMPLE"=>"test", "STRING"=>"value"]);
echo($result);
//result: test_value

$result = Str\replace_every_ci("example_string", dict["uncontained"=>"test", "uncontained_2"=>"value"]);
echo($result);
//result: example_string